Provided by: samba-vfs-modules_4.3.8+dfsg-0ubuntu1_amd64 bug


       vfs_aio_pthread - implement async I/O in Samba vfs using a pthread pool


       vfs objects = aio_pthread


       This VFS module is part of the samba(7) suite.

       The aio_pthread 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

       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.

       Note that the smb.conf parameters aio read size and aio write size must also be set
       appropriately for this module to be active.

       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.


       Straight forward use:

                path = /data/ice
                aio read size = 1024
                aio write size = 1024
                vfs objects = aio_pthread


       aio_pthread:aio num threads = INTEGER
           Limit the maximum number of threads per smbd that will be created in the thread pool
           to service IO requests.

           By default this is set to 100.


       This man page is correct for version 4.0 of the Samba suite.


       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.