Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: посоветуйте настройки
On 13.06.2009, at 10:13, Igor V. Fatkulin wrote:
Доброго дня.
Мучаюсь с баннерной системой на FreeBSD6.4 i386.
лучше перейти на 7.X и amd64
Используется связка:
1. на одном сервере nginx+apache, под апачем стартует cgi,
выпрашивающее у mysql номер баннера, который надо показать, сами
картинки отдаются nginx напрямую.
2. БД живет на другом сервере и периодически там накапливается куча
запросов в статусе Sending data, такое ощущение, что web-fronend тупо
не забирает данные.
В логах messages веба есть и такие записи:
kernel: Limiting closed port RST response from 231 to 200 packets/sec
и такие:
kernel: collecting pv entries -- suggest increasing PMAP_SHPGPERPROC
гугл, первая строка -
http://lists.freebsd.org/pipermail/freebsd-hackers/2003-May/000695.html
по ходу пьесы, ваш апач ставит раком ваш сервер
Посоветуйте плз как оттюнить.
Логи-настройки какие надо предоставлю. Сама система на 99.9999%
занимается отдачей картинок, LA <11 не бывает, а то и под 70
подскакивает. Периодически сайты перестают отвечать вообще, в этот
момент idle=~99% и количество процессов апача равно лимиту. По фтп и
ссх доступно все, пинги идут нормальные. Дисковая система не загружена
вообще никогда.
Переделать с CGI возможности нет, есть возможность только поменять
железо с 2xXEON (old) на новый младший 4хядерник.
эти процессоры умеют амд64.
###sysctl.conf:
net.inet.tcp.blackhole=1
net.inet.udp.blackhole=1
net.inet.tcp.nolocaltimewait=0
kern.ipc.somaxconn=4096
kern.ipc.maxsockets=204800
kern.maxfiles=204800
net.inet.tcp.recvspace=8192
kern.ipc.nmbclusters=262144
###loader.conf
accf_http_load="YES"
vm.kmem_size=1073741824
vm.kmem_size_max=1073741824
net.inet.tcp.syncache.hashsize=1024
net.inet.tcp.syncache.bucketlimit=100
net.inet.tcp.tcbhashsize=4096
### ядро SMP
+options KVA_PAGES=512
###nginx.conf
user nobody;
worker_processes 1;
pid logs/nginx.pid;
events {
use kqueue;
worker_connections 2048;
}
http {
include mime.types;
default_type application/octet-stream;
access_log logs/access.log;
error_log logs/error.log;
sendfile on;
tcp_nopush on;
keepalive_timeout 0;
#keepalive_timeout 65;
gzip off;
proxy_buffering on;
server {
listen IP_ADDRESS default accept_filter=httpready;
server_name server.name;
location / {
proxy_pass http://server.name:81/; - тут апач
proxy_set_header X-Real-IP $remote_addr;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ /\.ht {
deny all;
}
location ~* ^.+.(jpg|jpeg|gif|swf|ico|css|zip|tgz|gz|rar|bz2|
doc|xls|exe|pdf|ppt|txt|tar|mid
root /web/server.name/htdocs;
}
location /nginx_status {
stub_status on;
access_log off;
}
}
### httpd.conf - апач
KeepAlive Off
MinSpareServers 100
MaxSpareServers 500
MaxClients 512
500 серверов по 512 клиентов? 256 000 запросов одновременно? или я
неправильно считаю?
а в нгинх-е настроено максимум 2 048 запросов
MaxRequestsPerChild 5
все остальное в общем штатно
|