source: vendor/current/docs/manpages/vfs_aio_pthread.8

Last change on this file was 989, checked in by Silvan Scherrer, 9 years ago

Samba Server: update vendor to version 4.4.7

File size: 3.8 KB
RevLine 
[860]1'\" t
2.\" Title: vfs_aio_pthread
3.\" Author: [see the "AUTHOR" section]
[988]4.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
[989]5.\" Date: 10/25/2016
[860]6.\" Manual: System Administration tools
[988]7.\" Source: Samba 4.4
[860]8.\" Language: English
9.\"
[989]10.TH "VFS_AIO_PTHREAD" "8" "10/25/2016" "Samba 4\&.4" "System Administration tools"
[860]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"
31vfs_aio_pthread \- implement async I/O in Samba vfs using a pthread pool
32.SH "SYNOPSIS"
33.HP \w'\ 'u
34vfs objects = aio_pthread
35.SH "DESCRIPTION"
36.PP
37This VFS module is part of the
38\fBsamba\fR(7)
39suite\&.
40.PP
41The
42aio_pthread
43VFS 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
45To 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\&.