1 | '\" t
|
---|
2 | .\" Title: vfs_aio_pthread
|
---|
3 | .\" Author: [see the "AUTHOR" section]
|
---|
4 | .\" Generator: DocBook XSL Stylesheets v1.76.1 <http://docbook.sf.net/>
|
---|
5 | .\" Date: 09/18/2013
|
---|
6 | .\" Manual: System Administration tools
|
---|
7 | .\" Source: Samba 3.6
|
---|
8 | .\" Language: English
|
---|
9 | .\"
|
---|
10 | .TH "VFS_AIO_PTHREAD" "8" "09/18/2013" "Samba 3\&.6" "System Administration tools"
|
---|
11 | .\" -----------------------------------------------------------------
|
---|
12 | .\" * Define some portability stuff
|
---|
13 | .\" -----------------------------------------------------------------
|
---|
14 | .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---|
15 | .\" http://bugs.debian.org/507673
|
---|
16 | .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
|
---|
17 | .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
---|
18 | .ie \n(.g .ds Aq \(aq
|
---|
19 | .el .ds Aq '
|
---|
20 | .\" -----------------------------------------------------------------
|
---|
21 | .\" * set default formatting
|
---|
22 | .\" -----------------------------------------------------------------
|
---|
23 | .\" disable hyphenation
|
---|
24 | .nh
|
---|
25 | .\" disable justification (adjust text to left margin only)
|
---|
26 | .ad l
|
---|
27 | .\" -----------------------------------------------------------------
|
---|
28 | .\" * MAIN CONTENT STARTS HERE *
|
---|
29 | .\" -----------------------------------------------------------------
|
---|
30 | .SH "NAME"
|
---|
31 | vfs_aio_pthread \- implement async I/O in Samba vfs using a pthread pool
|
---|
32 | .SH "SYNOPSIS"
|
---|
33 | .HP \w'\ 'u
|
---|
34 | vfs objects = aio_pthread
|
---|
35 | .SH "DESCRIPTION"
|
---|
36 | .PP
|
---|
37 | This VFS module is part of the
|
---|
38 | \fBsamba\fR(7)
|
---|
39 | suite\&.
|
---|
40 | .PP
|
---|
41 | The
|
---|
42 | aio_pthread
|
---|
43 | VFS module enables asynchronous I/O for Samba on platforms which have the pthreads API available, without using the Posix AIO interface\&. Posix AIO can suffer from severe limitations\&. For example, on some Linux versions the real\-time signals that it uses are broken under heavy load\&. Other systems only allow AIO when special kernel modules are loaded or only allow a certain system\-wide amount of async requests being scheduled\&. Systems based on glibc (most Linux systems) only allow a single outstanding request per file descriptor which essentially makes Posix AIO useless on systems using the glibc implementation\&.
|
---|
44 | .PP
|
---|
45 | To work around all these limitations, the aio_pthread module was written\&. It uses a pthread pool instead of the internal Posix AIO interface to allow read and write calls to be process asynchronously\&. A pthread pool is created which expands dynamically by creating new threads as work is given to it to a maximum of 100 threads per smbd process\&. To change this limit see the "aio num threads" parameter below\&. New threads are not created if idle threads are available when a new read or write request is received, the new work is given to an existing idle thread\&. Threads terminate themselves if idle for one second\&.
|
---|
46 | .PP
|
---|
47 | Note that the smb\&.conf parameters
|
---|
48 | aio read size
|
---|
49 | and
|
---|
50 | aio write size
|
---|
51 | must also be set appropriately for this module to be active\&.
|
---|
52 | .PP
|
---|
53 | This module MUST be listed last in any module stack as the Samba VFS pread/pwrite interface is not thread\-safe\&. This module makes direct pread and pwrite system calls and does NOT call the Samba VFS pread and pwrite interfaces\&.
|
---|
54 | .SH "EXAMPLES"
|
---|
55 | .PP
|
---|
56 | Straight forward use:
|
---|
57 | .sp
|
---|
58 | .if n \{\
|
---|
59 | .RS 4
|
---|
60 | .\}
|
---|
61 | .nf
|
---|
62 | \fI[cooldata]\fR
|
---|
63 | \m[blue]\fBpath = /data/ice\fR\m[]
|
---|
64 | \m[blue]\fBaio read size = 1024\fR\m[]
|
---|
65 | \m[blue]\fBaio write size = 1024\fR\m[]
|
---|
66 | \m[blue]\fBvfs objects = aio_pthread\fR\m[]
|
---|
67 | .fi
|
---|
68 | .if n \{\
|
---|
69 | .RE
|
---|
70 | .\}
|
---|
71 | .SH "OPTIONS"
|
---|
72 | .PP
|
---|
73 | aio_pthread:aio num threads = INTEGER
|
---|
74 | .RS 4
|
---|
75 | Limit the maximum number of threads per smbd that will be created in the thread pool to service IO requests\&.
|
---|
76 | .sp
|
---|
77 | By default this is set to 100\&.
|
---|
78 | .RE
|
---|
79 | .SH "VERSION"
|
---|
80 | .PP
|
---|
81 | This man page is correct for version 3\&.6\&.3 of the Samba suite\&.
|
---|
82 | .SH "AUTHOR"
|
---|
83 | .PP
|
---|
84 | The original Samba software and related utilities were created by Andrew Tridgell\&. Samba is now developed by the Samba Team as an Open Source project similar to the way the Linux kernel is developed\&.
|
---|