Re: оптимизация системы для nginx
calculator на land.ru
calculator на land.ru
Ср Фев 17 19:40:03 MSK 2010
config:
worker_processes 8;
error_log logs/error.log notice;
events {
worker_connections 16384;
}
http {
include conf/mime.types;
default_type application/octetga-stream;
log_format main '$request_uri $msec $http_referer $remote_addr'
' $http_user_agent $http_x_forwarded_for';
access_log logs/access.log main;
sendfile on;
#tcp_nopush on;
keepalive_timeout 0;
tcp_nodelay on;
send_timeout 10;
client_header_timeout 10;
server_names_hash_bucket_size 64;
Дальше локации - ничего интересного.
sysctl:
net.core.wmem_max = 204800000
net.core.wmem_default = 204800000
net.core.rmem_max = 819200000
net.core.rmem_default = 819200000
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216
net.ipv4.tcp_no_metrics_save = 1
net.core.netdev_max_backlog = 100000
net.ipv4.tcp_congestion_control = htcp
net.ipv4.tcp_max_syn_backlog = 256000
net.ipv4.tcp_fin_timeout = 15
net.ipv4.conf.bond0.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.default.arp_ignore = 1
fs.file-max = 65536
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_tw_buckets = 2048000
net.core.somaxconn = 4096
net.ipv4.tcp_mem = 786432 1048576 1572864
net.ipv4.tcp_timestamps = 0
net.core.dev_weight = 1024
net.ipv4.tcp_max_orphans = 64000
net.ipv4.ip_local_port_range=1024 65535
Viatcheslav E. Kouznetsov пишет:
> Привет!
> Ну как минимум покажи конфиг nginx'а и sysctl (изменения
> относительно дефолтного центосовского)
>
> В сообщении от 16 февраля 2010 17:39 calculator at land.ru написал(a):
>
>> Привет.
>> При определенной посещаемости nginx перестает отдаваться. В netstat
>> ругань на "times the listen queue of a socket overflowed".
>> nginx с дебагом ругается:
>> 2010/02/11 14:05:52 [info] 27879#0: *53029559 recv() failed (104:
>> Connection reset by peer) while reading client request line, client:
>> 92.37.202.227, server: www.site.ru
>> 2010/02/11 14:05:52 [info] 27879#0: *53029559 writev() failed (32:
>> Broken pipe) while reading client request line, client: 92.37.202.227,
>> server: www.site.ru
>>
>> centos 2.6.18 nginx-0.3.54
>>
>> Интересно то, что ресурсы у системы вроде как есть:
>> mpstat:
>> 10:13:20 AM CPU %user %nice %sys %iowait %irq %soft
>> %steal %idle intr/s
>> 10:13:21 AM all 7.12 0.00 10.62 0.12 0.25 26.62
>> 0.00 55.25 17738.38
>> 10:13:21 AM 0 6.06 0.00 24.24 0.00 0.00 47.47
>> 0.00 22.22 2088.89
>> 10:13:21 AM 1 7.07 0.00 11.11 0.00 0.00 23.23
>> 0.00 58.59 2281.82
>> 10:13:21 AM 2 7.07 0.00 8.08 0.00 1.01 20.20
>> 0.00 65.66 2295.96
>> 10:13:21 AM 3 7.07 0.00 8.08 0.00 1.01 23.23
>> 0.00 62.63 2201.01
>> 10:13:21 AM 4 5.05 0.00 9.09 0.00 0.00 31.31
>> 0.00 56.57 2108.08
>> 10:13:21 AM 5 6.06 0.00 8.08 0.00 0.00 24.24
>> 0.00 62.63 2260.61
>> 10:13:21 AM 6 11.11 0.00 8.08 0.00 0.00 23.23
>> 0.00 58.59 2268.69
>> 10:13:21 AM 7 7.07 0.00 9.09 0.00 0.00 23.23
>> 0.00 60.61 2229.29
>>
>> iostat:
>> Device: rrqm/s wrqm/s r/s w/s rsec/s wsec/s avgrq-sz
>> avgqu-sz await svctm %util
>> sda 0.00 6.67 0.00 37.67 0.00 13861.33
>> 368.00 0.16 4.20 0.53 2.00
>> sda1 0.00 6.67 0.00 13.00 0.00 157.33
>> 12.10 0.02 1.38 0.08 0.10
>> sda2 0.00 0.00 0.00 24.67 0.00 13704.00
>> 555.57 0.14 5.69 0.77 1.90
>> sda3 0.00 0.00 0.00 0.00 0.00 0.00
>> 0.00 0.00 0.00 0.00 0.00
>>
>> Процессы nginx'а висят примерно пополам в sleep/run.
>> Если рядом к примеру на 81 порт запустить еще 1 nginx, он хорошо отдается.
>> somaxconn и backlog выкручены.
>> Пробовал играться с worker_processes worker_connections rcvbuf sndbuf,
>> ulimits, но эфекта нет :-(
>> С этим можно бороться?
>>
>> _______________________________________________
>> nginx-ru mailing list
>> nginx-ru at nginx.org
>> http://nginx.org/mailman/listinfo/nginx-ru
>>
>
>
Подробная информация о списке рассылки nginx-ru