Оптимизация работы nginx.Проблема с новыми соединениями
unclead
nginx-forum на nginx.us
Ср Окт 20 08:16:29 MSD 2010
Коллеги, нужна помощь.
Сам по роду деятельности не
администратор, работаю в
сопровождение, но т.к. занимался данным
проектом отдуваться приходиться мне.
Есть сервер 8 ядер по 2Ghz 4 GB оперативной
памяти, 2 гигабитных сетевки.
На сервере работает nginx для
проксирования запросов.
Также работает fast-cgi php на котором
крутиться один простой скрипт.
Ничем кроме проксирования сервер не
занимается.
В среднем через сервер проходит 300-500
запросов в секунду.
В свое время на сервер было зарулено
много трафика(порядка 120-200 Мбит/сек) и
сервер нормально справлялся с
нагрузкой.
Запросы по своей сути были
быстрыми(отдача статики)
Потом трафик на сервере снизился, но
появились более тяжелые запросы, к
пример уотдача видео и аудио.
И начались проблемы.
Вроде при малом количетсве активных
конектов по sockstat
sockets: used 3043
TCP: inuse 6373 orphan 3462 tw 2466 alloc 6374 mem 36350
новые соединения к серверу либо
отваливаются по тайм-ауту либо
соединяются очень долго.
Память и процессор при это практически
не используется.
Конфиг sysctl
sysctl -p
net.ipv4.ip_forward = 0
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.all.arp_ignore = 1
net.ipv4.conf.lo.arp_ignore = 1
net.ipv4.conf.all.arp_announce = 2
net.ipv4.conf.lo.arp_announce = 2
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_window_scaling = 1
net.core.rmem_max = 33554432
net.core.wmem_max = 33554432
net.ipv4.tcp_rmem = 8192 131072 33554432
net.ipv4.tcp_wmem = 8192 131072 33554432
net.ipv4.tcp_max_orphans = 512384
net.ipv4.tcp_sack = 1
net.ipv4.tcp_mem = 101152 129536 196304
net.ipv4.tcp_fin_timeout = 15
net.ipv4.tcp_keepalive_time = 10
net.ipv4.tcp_keepalive_intvl = 1
net.ipv4.tcp_keepalive_probes = 1
net.core.netdev_max_backlog = 3000
net.core.somaxconn = 65536
net.ipv4.tcp_timestamps = 1
net.ipv4.ip_local_port_range = 1024 65535
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 5
fs.file-max = 1524288
net.core.rmem_default = 201250
net.core.wmem_default = 201250
net.ipv4.tcp_mtu_probing = 1
net.ipv4.tcp_congestion_control = cubic
net.ipv4.tcp_max_tw_buckets = 1440000
конфиг nginx
user nginx nginx;
worker_processes 8;
worker_rlimit_nofile 65536;
#
#error_log /var/log/nginx/error_log info;
events {
worker_connections 65536;
use epoll;
}
...
client_header_timeout 10m;
client_body_timeout 10m;
send_timeout 10;
connection_pool_size 256;
client_header_buffer_size 1k;
large_client_header_buffers 4 2k;
request_pool_size 4k;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 8k;
gzip_types text/plain;
output_buffers 1 32k;
postpone_output 1460;
sendfile on;
# tcp_nopush on;
tcp_nodelay on;
ignore_invalid_headers off;
#--- begin --------------------------
proxy_buffering off;
proxy_ignore_client_abort off;
proxy_max_temp_file_size 0;
keepalive_timeout 10 10;
reset_timedout_connection on;
proxy_buffer_size 4k;
proxy_read_timeout 10s;
proxy_send_timeout 10s;
#--- end ------------------------------
Вопрос: хочется понять в какую сторону
копать. Что может ограничивать
соединения.
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,142560,142560#msg-142560
Подробная информация о списке рассылки nginx-ru