read_ahead
Михаил Монашёв
postmaster at softsearch.ru
Tue Sep 29 15:16:04 MSD 2009
Здравствуйте, Денис.
Спасибо. разобрался.
А как узнать, что aio заработал под FreeBSD 7.x ? Как я его не включал
всегда одна и та же картина:
ps -auxwww|grep nginx
www 55214 0.5 0.0 25440 16580 ?? S 3:06PM 0:01.24 nginx: worker process (nginx)
root 55209 0.0 0.0 9056 2560 ?? Is 3:06PM 0:00.00 nginx: master process /usr/local/sbin/nginx
www 55210 0.0 0.0 17248 10704 ?? S 3:06PM 0:00.30 nginx: worker process (nginx)
www 55211 0.0 0.0 22368 15216 ?? R 3:06PM 0:01.02 nginx: worker process (nginx)
www 55212 0.0 0.0 23392 13688 ?? S 3:06PM 0:00.90 nginx: worker process (nginx)
www 55213 0.0 0.0 23392 16748 ?? S 3:06PM 0:00.77 nginx: worker process (nginx)
www 55215 0.0 0.0 22368 13356 ?? D 3:06PM 0:00.76 nginx: worker process (nginx)
www 55216 0.0 0.0 18272 11416 ?? D 3:06PM 0:00.39 nginx: worker process (nginx)
www 55217 0.0 0.0 23392 15364 ?? S 3:06PM 0:00.87 nginx: worker process (nginx)
www 55218 0.0 0.0 21344 13312 ?? S 3:06PM 0:00.76 nginx: worker process (nginx)
www 55219 0.0 0.0 19296 12624 ?? S 3:06PM 0:00.56 nginx: worker process (nginx)
top -U www
last pid: 55263; load averages: 0.36, 0.27, 0.29 up 84+19:59:47 15:07:13
34 processes: 1 running, 33 sleeping
CPU: 0.1% user, 0.0% nice, 4.0% system, 0.1% interrupt, 95.9% idle
Mem: 255M Active, 27G Inact, 3021M Wired, 1268M Cache, 399M Buf, 29M Free
Swap:
PID USERNAME THR PRI NICE SIZE RES STATE C TIME WCPU COMMAND
55218 www 1 4 0 21344K 14716K kqread 1 0:01 0.39% nginx
55214 www 1 4 0 25440K 16804K kqread 1 0:02 0.00% nginx
55211 www 1 4 0 22368K 15216K biord 0 0:01 0.00% nginx
55212 www 1 4 0 23392K 14328K kqread 0 0:01 0.00% nginx
55217 www 1 4 0 22368K 15248K kqread 0 0:01 0.00% nginx
55213 www 1 4 0 23392K 16748K biord 1 0:01 0.00% nginx
55215 www 1 4 0 22368K 14020K kqread 3 0:01 0.00% nginx
55219 www 1 -8 0 20320K 13540K biord 2 0:01 0.00% nginx
55216 www 1 4 0 18272K 11980K kqread 3 0:01 0.00% nginx
55210 www 1 4 0 18272K 11772K kqread 7 0:01 0.00% nginx
т.е. статусы процессов D и biord никуда не пропадают.
Конфиг вот такой:
worker_processes 10;
pid /var/run/nginx.pid;
events {
use kqueue;
worker_connections 16384;
}
http {
access_log off;
log_not_found off;
aio on;
sendfile off;
output_buffers 1 64k;
#aio sendfile;
#sendfile on;
tcp_nopush on;
tcp_nodelay on;
send_lowat 12000;
ignore_invalid_headers on;
server_names_hash_bucket_size 64;
client_max_body_size 10m;
client_body_buffer_size 128k;
client_header_timeout 3m;
client_header_buffer_size 2k;
client_body_timeout 3m;
send_timeout 3m;
postpone_output 1460;
keepalive_timeout 75 60;
reset_timedout_connection on;
...
/usr/local/sbin/nginx -V
nginx version: nginx/0.8.16
configure arguments: --prefix=/usr/local/etc/nginx --with-cc-opt='-I /usr/local/include' --with-ld-opt='-L /usr/local/lib' --conf-path=/usr/local/etc/nginx/nginx.conf --sbin-path=/usr/local/sbin/nginx --pid-path=/var/run/nginx.pid --error-log-path=/var/log/nginx-error.log --user=www --group=www --with-file-aio --http-client-body-temp-path=/var/tmp/nginx/client_body_temp --http-proxy-temp-path=/var/tmp/nginx/proxy_temp --http-fastcgi-temp-path=/var/tmp/nginx/fastcgi_temp --http-log-path=/var/log/nginx-access.log --without-http-cache --with-http_dav_module --with-http_realip_module --with-http_stub_status_module --with-pcre
>> Игорь, а поясни пожалуйста что даёт aio sendfile? Ниже ты описал
>> алгоритм работы, а зачем он нужен не понятно.
DFL> для event-driven приложения в идеале весь IO должен быть
DFL> неблокируемый, но на практике IO блокируется. AIO sendfile эмулирует
DFL> неблокируемый дисковый ввод-вывод: теперь не нужны 1000 воркеров :)
DFL> как то так...
IS>>> aio sendfile в nginx'е использует флаг SF_NODISKIO и sendfile() не
IS>>> блокируется на диске, а сообщает об отсутствии данных в памяти,
IS>>> после чего nginx инициирует асинхронную подгрузку данных, читая
IS>>> только один байт. При этом ядро FreeBSD подгружает в память первые
IS>>> 128K файла, однако при последующих чтениях файл подгружается частями
IS>>> только по 16K.
--
С уважением,
Михаил Монашёв, SoftSearch.ru
mailto:postmaster at softsearch.ru
ICQ# 166233339
http://michael.mindmix.ru/
Без бэкапа по жизни.
More information about the nginx-ru
mailing list