1VFS_AIO_PTHREAD(8) System Administration tools VFS_AIO_PTHREAD(8)
2
3
4
6 vfs_aio_pthread - implement async I/O in Samba vfs using a pthread pool
7
9 vfs objects = aio_pthread
10
12 This VFS module is part of the samba(7) suite.
13
14 The aio_pthread VFS module enables asynchronous I/O for Samba on
15 platforms which have the pthreads API available, without using the
16 Posix AIO interface. Posix AIO can suffer from severe limitations. For
17 example, on some Linux versions the real-time signals that it uses are
18 broken under heavy load. Other systems only allow AIO when special
19 kernel modules are loaded or only allow a certain system-wide amount of
20 async requests being scheduled. Systems based on glibc (most Linux
21 systems) only allow a single outstanding request per file descriptor
22 which essentially makes Posix AIO useless on systems using the glibc
23 implementation.
24
25 To work around all these limitations, the aio_pthread module was
26 written. It uses a pthread pool instead of the internal Posix AIO
27 interface to allow read and write calls to be process asynchronously. A
28 pthread pool is created which expands dynamically by creating new
29 threads as work is given to it to a maximum of 100 threads per smbd
30 process. To change this limit see the "aio num threads" parameter
31 below. New threads are not created if idle threads are available when a
32 new read or write request is received, the new work is given to an
33 existing idle thread. Threads terminate themselves if idle for one
34 second.
35
36 Note that the smb.conf parameters aio read size and aio write size must
37 also be set appropriately for this module to be active.
38
39 This module MUST be listed last in any module stack as the Samba VFS
40 pread/pwrite interface is not thread-safe. This module makes direct
41 pread and pwrite system calls and does NOT call the Samba VFS pread and
42 pwrite interfaces.
43
45 Straight forward use:
46
47 [cooldata]
48 path = /data/ice
49 aio read size = 1024
50 aio write size = 1024
51 vfs objects = aio_pthread
52
54 aio_pthread:aio num threads = INTEGER
55 Limit the maximum number of threads per smbd that will be created
56 in the thread pool to service IO requests.
57
58 By default this is set to 100.
59
61 This man page is correct for version 4.0 of the Samba suite.
62
64 The original Samba software and related utilities were created by
65 Andrew Tridgell. Samba is now developed by the Samba Team as an Open
66 Source project similar to the way the Linux kernel is developed.
67
68
69
70Samba 4.2 06/19/2018 VFS_AIO_PTHREAD(8)