| 1 | '\" t
|
|---|
| 2 | .\" Title: vfs_aio_linux
|
|---|
| 3 | .\" Author: [see the "AUTHOR" section]
|
|---|
| 4 | .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
|
|---|
| 5 | .\" Date: 10/25/2016
|
|---|
| 6 | .\" Manual: System Administration tools
|
|---|
| 7 | .\" Source: Samba 4.4
|
|---|
| 8 | .\" Language: English
|
|---|
| 9 | .\"
|
|---|
| 10 | .TH "VFS_AIO_LINUX" "8" "10/25/2016" "Samba 4\&.4" "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_linux \- implement async I/O in Samba vfs using Linux kernel aio calls
|
|---|
| 32 | .SH "SYNOPSIS"
|
|---|
| 33 | .HP \w'\ 'u
|
|---|
| 34 | vfs objects = aio_linux
|
|---|
| 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_linux
|
|---|
| 43 | VFS module enables asynchronous I/O for Samba on Linux kernels that have the kernel AIO calls 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_linux module was written\&. It uses the Linux kernel AIO interface instead of the internal Posix AIO interface to allow read and write calls to be processed asynchronously\&. A queue size of 128 events is used by default\&. To change this limit set the "aio num events" parameter below\&.
|
|---|
| 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_linux\fR\m[]
|
|---|
| 67 | .fi
|
|---|
| 68 | .if n \{\
|
|---|
| 69 | .RE
|
|---|
| 70 | .\}
|
|---|
| 71 | .SH "OPTIONS"
|
|---|
| 72 | .PP
|
|---|
| 73 | aio_linux:aio num events = INTEGER
|
|---|
| 74 | .RS 4
|
|---|
| 75 | Set the maximum size of the event queue that is used to limit outstanding IO requests\&.
|
|---|
| 76 | .sp
|
|---|
| 77 | By default this is set to 128\&.
|
|---|
| 78 | .RE
|
|---|
| 79 | .SH "VERSION"
|
|---|
| 80 | .PP
|
|---|
| 81 | This man page is correct for version 4\&.0 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\&.
|
|---|