Mercurial > hg > nginx-site
comparison xml/ru/docs/http/ngx_http_core_module.xml @ 1432:9012d7935c9b
Documented that "aio sendfile" is deprecated.
This also made it possible to move the description of sendfile()
pre-loading from "aio" to "sendfile".
author | Ruslan Ermilov <ru@nginx.com> |
---|---|
date | Tue, 17 Mar 2015 09:18:35 +0300 |
parents | 0eb8e261f349 |
children | 2333e08e277d |
comparison
equal
deleted
inserted
replaced
1431:c4ca69d3e552 | 1432:9012d7935c9b |
---|---|
8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> | 8 <!DOCTYPE module SYSTEM "../../../../dtd/module.dtd"> |
9 | 9 |
10 <module name="Модуль ngx_http_core_module" | 10 <module name="Модуль ngx_http_core_module" |
11 link="/ru/docs/http/ngx_http_core_module.html" | 11 link="/ru/docs/http/ngx_http_core_module.html" |
12 lang="ru" | 12 lang="ru" |
13 rev="37"> | 13 rev="38"> |
14 | 14 |
15 <section id="directives" name="Директивы"> | 15 <section id="directives" name="Директивы"> |
16 | 16 |
17 <directive name="aio"> | 17 <directive name="aio"> |
18 <syntax> | 18 <syntax> |
19 <literal>on</literal> | | 19 <literal>on</literal> | |
20 <literal>off</literal> | | 20 <literal>off</literal></syntax> |
21 <literal>sendfile</literal></syntax> | |
22 <default>off</default> | 21 <default>off</default> |
23 <context>http</context> | 22 <context>http</context> |
24 <context>server</context> | 23 <context>server</context> |
25 <context>location</context> | 24 <context>location</context> |
26 <appeared-in>0.8.11</appeared-in> | 25 <appeared-in>0.8.11</appeared-in> |
27 | 26 |
28 <para> | 27 <para> |
29 Разрешает или запрещает использование файлового асинхронного ввода-вывода (AIO) | 28 Разрешает или запрещает использование файлового асинхронного ввода-вывода (AIO) |
30 во FreeBSD и Linux. | 29 во FreeBSD и Linux: |
30 <example> | |
31 location /video/ { | |
32 aio on; | |
33 output_buffers 1 64k; | |
34 } | |
35 </example> | |
31 </para> | 36 </para> |
32 | 37 |
33 <para> | 38 <para> |
34 Во FreeBSD AIO можно использовать, начиная с FreeBSD 4.3. | 39 Во FreeBSD AIO можно использовать, начиная с FreeBSD 4.3. |
35 AIO можно либо собрать в ядре статически: | 40 AIO можно либо собрать в ядре статически: |
71 </note> | 76 </note> |
72 </para> | 77 </para> |
73 --> | 78 --> |
74 | 79 |
75 <para> | 80 <para> |
76 Для работы AIO на FreeBSD нужно выключить | |
77 <link id="sendfile"/>: | |
78 <example> | |
79 location /video/ { | |
80 aio on; | |
81 sendfile off; | |
82 output_buffers 1 64k; | |
83 } | |
84 </example> | |
85 </para> | |
86 | |
87 <para> | |
88 Кроме того, начиная с FreeBSD 5.2.1 и nginx 0.8.12, AIO также можно | |
89 использовать для подгрузки данных для <c-func>sendfile</c-func>: | |
90 <example> | |
91 location /video/ { | |
92 sendfile on; | |
93 tcp_nopush on; | |
94 aio sendfile; | |
95 } | |
96 </example> | |
97 В такой конфигурации функция <c-func>sendfile</c-func> вызывается с флагом | |
98 <c-def>SF_NODISKIO</c-def>, в результате чего она не блокируется на диске, а | |
99 сообщает об отсутствии данных в памяти. | |
100 После этого nginx инициирует асинхронную подгрузку данных, читая один байт. | |
101 При этом ядро FreeBSD подгружает в память первые 128K байт файла, однако | |
102 при последующих чтениях файл подгружается частями только по 16K. | |
103 Изменить это можно с помощью директивы | |
104 <link id="read_ahead"/>. | |
105 </para> | |
106 | |
107 <para> | |
108 В Linux AIO можно использовать только начиная с версии ядра 2.6.22. | 81 В Linux AIO можно использовать только начиная с версии ядра 2.6.22. |
109 Кроме того, необходимо также дополнительно включить | 82 Кроме того, необходимо также дополнительно включить |
110 <link id="directio"/>, | 83 <link id="directio"/>, |
111 иначе чтение будет блокирующимся: | 84 иначе чтение будет блокирующимся: |
112 <example> | 85 <example> |
140 sendfile on; | 113 sendfile on; |
141 aio on; | 114 aio on; |
142 directio 8m; | 115 directio 8m; |
143 } | 116 } |
144 </example> | 117 </example> |
118 </para> | |
119 | |
120 <para> | |
121 См. также директиву <link id="sendfile"/>. | |
145 </para> | 122 </para> |
146 | 123 |
147 </directive> | 124 </directive> |
148 | 125 |
149 | 126 |
2201 <para> | 2178 <para> |
2202 Разрешает или запрещает использовать | 2179 Разрешает или запрещает использовать |
2203 <c-func>sendfile</c-func>. | 2180 <c-func>sendfile</c-func>. |
2204 </para> | 2181 </para> |
2205 | 2182 |
2183 <para> | |
2184 Начиная с nginx 0.8.12 и FreeBSD 5.2.1, | |
2185 можно использовать <link id="aio"/> для подгрузки данных | |
2186 для <c-func>sendfile</c-func>: | |
2187 <example> | |
2188 location /video/ { | |
2189 sendfile on; | |
2190 tcp_nopush on; | |
2191 aio on; | |
2192 } | |
2193 </example> | |
2194 В такой конфигурации функция <c-func>sendfile</c-func> вызывается с флагом | |
2195 <c-def>SF_NODISKIO</c-def>, в результате чего она не блокируется на диске, а | |
2196 сообщает об отсутствии данных в памяти. | |
2197 После этого nginx инициирует асинхронную подгрузку данных, читая один байт. | |
2198 При этом ядро FreeBSD подгружает в память первые 128K байт файла, однако | |
2199 при последующих чтениях файл подгружается частями только по 16K. | |
2200 Изменить это можно с помощью директивы | |
2201 <link id="read_ahead"/>. | |
2202 <note> | |
2203 До версии 1.7.11 подгрузка данных включалась с помощью | |
2204 <literal>aio sendfile;</literal>. | |
2205 </note> | |
2206 </para> | |
2207 | |
2206 </directive> | 2208 </directive> |
2207 | 2209 |
2208 | 2210 |
2209 <directive name="sendfile_max_chunk"> | 2211 <directive name="sendfile_max_chunk"> |
2210 | 2212 |