httpd+nginx конфиг

kennedy

Новичок
httpd+nginx конфиг

Есть связка httpd+nginx который отдает большие файлы

статика находится на под домене и ограничен по скорости(40кб\1ип). При достижении скорости до 40-50 метров это всего 128 активных соединений достучатся к серверу практически не реально. (задержки до 10сек) процессор оперативка канал полностью свободны.
В конфиге nginx
worker_processes 10;
worker_connections 4096;
это 40960 соединений в чем может быть проблема?
 

dr-sm

Новичок
что с дисками?
болшие файлы отдает связка, или нжинкс напрямую?
 

kennedy

Новичок
статика находится на отдельном диске. 50 Mb это не такая больная скорость что бы загрузит диск

Кроме файлов на сервере находятся сайты, поэтому именно связка. Статику забирает nginx остальное отдает httpd на обработку

fixxxer
Канал свободен(1Гб\с) Оперативка и процессор тоже
 

kennedy

Новичок
что то centos не находит такую команду. Но диск не может быть причиной так как статика которая грузит канал находится на отдельном диске, а сайты и система на другом в итоге задержка именно на сайты. Тест скорости показывает 80МБ
 

kennedy

Новичок
[root@212 ~]# ps uax | grep nginx
root 19672 0.0 0.0 18532 1276 ? Ss 13:09 0:00 nginx: master p rocess /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 19673 0.0 0.1 19568 3116 ? S 13:09 0:02 nginx: worker p rocess
nginx 19674 0.0 0.1 19436 3000 ? S 13:09 0:02 nginx: worker p rocess
nginx 19675 0.0 0.1 19832 3356 ? D 13:09 0:02 nginx: worker p rocess
nginx 19676 0.0 0.1 19436 3028 ? S 13:09 0:02 nginx: worker p rocess
nginx 19677 0.0 0.1 19436 3016 ? S 13:09 0:01 nginx: worker p rocess
nginx 19678 0.0 0.1 19436 3004 ? S 13:09 0:02 nginx: worker p rocess
nginx 19679 0.0 0.1 19436 2956 ? S 13:09 0:01 nginx: worker p rocess
nginx 19680 0.0 0.1 19436 2888 ? S 13:09 0:01 nginx: worker p rocess
nginx 19681 0.0 0.1 19436 2948 ? S 13:09 0:01 nginx: worker p rocess
nginx 19682 0.0 0.1 19436 2984 ? S 13:09 0:01 nginx: worker p rocess
root 25839 0.0 0.0 3920 676 pts/5 S+ 14:24 0:00 grep nginx
[root@212 ~]#
 

dr-sm

Новичок
попробуй
sendfile_max_chunk=256k
(512k, 1m)

-~{}~ 23.03.10 14:28:

это под нагрузкой?

-~{}~ 23.03.10 14:30:

конфиг покажи нжинкс
 

kennedy

Новичок
да под нагрузкой.

user nginx;
worker_processes 10;

error_log /var/log/nginx/error.log;
#error_log /var/log/nginx/error.log notice;
#error_log /var/log/nginx/error.log info;

pid /var/run/nginx.pid;
events {
worker_connections 4096;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

#keepalive_timeout 0;
keepalive_timeout 65;

#gzip on;

# Load config files from the /etc/nginx/conf.d directory
include /etc/nginx/conf.d/*.conf;

#
# The default server
#
limit_zone lzone $binary_remote_addr 10m;

server {
listen xxx
server_name xxx

location ~* ^/(webstat/|awstats|webmail/|myadmin/|manimg/) {
proxy_pass xxx
proxy_redirect xxx
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location / {
proxy_pass xxx
proxy_redirect xxx
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
location /data/freesee/ {
root xxx
flv;
limit_conn lzone 2;
limit_rate_after 200k;
limit_rate 10k;
}
location /data/fastsee/ {
root xxx
error_page 404 xxx
flv;
limit_conn lzone 2;
limit_rate_after 400k;
limit_rate 40k;
}
location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar)$ {
root xxx
access_log xxx
error_page 404 = @fallback;
}
location @fallback {
proxy_pass xxx
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
}
}
 

kennedy

Новичок
nginx 0.7.64 последняя стабильная на момент установки
думаю не в sentfile проблема. Наоборот она предназначена для отдачи больших файлов.

Код:
Device:         rrqm/s   wrqm/s   r/s   w/s   rsec/s   wsec/s avgrq-sz avgqu-sz   await  svctm  %util
sda               2.24    21.07  6.19  7.24   257.27   226.49    36.03     0.18   13.63   2.03   2.73
sda1              0.02     0.00  0.00  0.00     0.04     0.00    26.08     0.00    5.43   3.94   0.00
sda2              0.01     0.00  0.00  0.00     0.02     0.01    36.11     0.00    3.82   3.32   0.00
sda3              2.21    21.07  6.18  7.24   257.21   226.49    36.03     0.18   13.63   2.03   2.73
sdb               0.07     0.05  0.82  0.11    77.75     1.26    85.83     0.00    3.31   3.28   0.30
sdb1              0.07     0.05  0.81  0.11    77.74     1.26    85.87     0.00    3.31   3.28   0.30
sdc              12.52     2.27 44.10  0.44  5606.89    21.67   126.37     1.68   37.82  11.82  52.64
sdc1             12.52     2.27 44.10  0.44  5606.88    21.67   126.37     1.68   37.82  11.82  52.64
-~{}~ 23.03.10 15:33:

и еще странный момент. при первой загрузке сайта время ожидания ответа 10сек при навигации по сайту либо сразу отдает либо снова 10 сек как когда...
 

dr-sm

Новичок
попробуй все-таки так:
Код:
location /data/freesee/ {
  root xxx
  flv;
  limit_conn lzone 2;
  limit_rate_after 200k;
  limit_rate 10k;
  output_buffers  1 1m;
  sendfile        off;
}
location /data/fastsee/ {
  root xxx
  error_page 404 xxx
  flv;
  limit_conn lzone 2;
  limit_rate_after 400k;
  limit_rate 40k;
  output_buffers  1 1m;
  sendfile        off;
}
см также http://www.lexa.ru/nginx-ru/msg10698.html
PS sendfile_max_chunk не работает с если включен limit_rate (

-~{}~ 23.03.10 15:50:

http://forum.nginx.org/list.php?21 - тут еще можно спросить
по поводу 10 секунд нада смотреть логи где и чего он ждет
 

fixxxer

К.О.
Партнер клуба
ну надо для начала понять во что упирается

если не в сеть и не в цпу то в диск значит
 

kennedy

Новичок
см также http://www.lexa.ru/nginx-ru/msg10698.html
проблема так и осталась не решенной. человек который отвечал на это письмо по всей видимости не понял что Mb это мегабиты. Но не смотря на это заявил что sendfile тут не причем.
Установил
output_buffers 1 1m;
sendfile off;
скорость так и осталась 40-50Мб

Ответ в 10сек только при загрузке в 40-50Мб
сеть цпу оперативка практически не используются
все упирается в конфиг
даже при выключено limit_rate проблема остается

Статистика по дискам выше. они практически не используются.
 

fixxxer

К.О.
Партнер клуба
>>человек который отвечал на это письмо по всей видимости не понял что Mb это мегабиты

потому что Mb это мегабайты :)

-~{}~ 23.03.10 16:39:

а какого размера файлы? и на чем они лежат - на обычном диске или какой то рейд?
 

kennedy

Новичок
а что тогда MB? я всегда думал что маленькая это биты а большая байты)

сейчас проверю может sendfile_max_chunk 256k; чем то поможет

Как не крути но у меня точно 50Мбит

Если при загрузке 50мб пытаться скачать файл(на другой сервер с каналом 100мб) через фтп то +100мб это никак не влияет на то что отдает nginx, если гетом через http:// то максимум до 80 (+30) несколько раз поднималось но потом сразу на 40-50 опускается)
 

dimagolov

Новичок
kennedy, поставь munin и соответствующие плагины, чтобы смотреть загрузку тазика.
 

dr-sm

Новичок
конфиг без сендфайл точно подхватился?
оно по идее должно было хотябы проц начать посильнее грузить и жрать память.
 
Сверху