Re: медленная отдача по сети во внешний мир

Vitaliy Lisenko vlisenko.3s at gmail.com
Mon Jun 1 20:02:11 MSD 2009


попробуйте начать с проверки Сетки. ибо 1-3 мегабайта /секонд - это не
скорость., это остатки от чего-то, полагаю вряд-ли какой-то тюнинг мог
так убить сеть, скорее это железо.

netstat -ni
посмотрите, нет ли  коллизий,
для теста попробоваться поиграть скоростью порта , может он в
полудуплексе ? я бы убрал авто определение и поставил ручками ту же
100мегабитку в фуллдуплексе, а потом уже смотреть дальше. во внешку  с
примари адреса (того который Первым на карте ) ?



26 мая 2009 г. 12:50 пользователь Sergey Averyanov
<asv at pallant-mobile.ru> написал:
> В сообщении от Monday 25 May 2009 17:45:22 Sergey Averyanov написал(а):
> и еще одно наблюдение: из внешнего мира при тестовой закачке рандомного
> файлика по scp без компрессии достигается скорость 3MB/s
> с учетом того, что скорость отдачи по http не сильно выше 1MS/s, можно
> предположить, что пропускной способности сети вроде как хватает и дело именно
> в каких-то настройках.
> с благодарностью приму совет -- картина больно уж непонятная
>
>> Есть FreeBSD 7.2-STABLE + nginx/0.6.36
>> С некоторого момента времени заметно следующее: отдача данных по сети во
>> внешний мир идет на порядок медленнее, чем ожидается.
>> По сети вовне (по замеркам apache benchmark) закешированная мемекешем
>> главная отдается со скоростью 3-4 запроса в секунду, тот же тест с
>> локалхоста дает около 2000 запросов в секунду.
>> Все это крутится на машине Intel(R) Core(TM)2 Quad CPU,
>> real memory  = 3479166976 (3317 MB)
>>
>> Нутром чую, дело в недотюненности сети.
>> Причем судя по сравнительному результату локальных и удаленных тестов
>> недотюненность какая то глобальная, а не косметическая.
>> Чт можно попробовать подкрутить?
>>
>> Дополнительная информация ниже:
>> 0) Конфиг такой:
>> workr_processes  4;
>>
>> events {
>>     worker_connections  4096;
>>     use kqueue;
>> }
>>
>>
>> http {
>>     include       mime.types;
>>     default_type  application/octet-stream;
>>     sendfile        on;
>>     keepalive_timeout  65;
>>     gzip on;
>>     gzip_min_length 0;
>>     gzip_proxied any;
>>     gzip_types text/html text/plain text/css application/x-javascript
>> application/xml;
>>     client_max_body_size 25m;
>>
>>     server {
>>         listen x.x.x.x:80;
>>         server_name  www.foo.ru;
>>
>>         location / {
>>             set             $memcached_key   "$uri?$args";
>>             memcached_pass  127.0.0.1:11211;
>>             default_type text/html;
>>             log_format mc '[$time_local] $remote_addr "$http_referer"
>> "$http_user_agent" -- $memcached_key';
>>             access_log /var/log/nginx/foo.ru/www/mc.log mc;
>>             error_page      404 405 502 504 = @fallback;
>>         }
>>         location @fallback {
>>                 proxy_pass        http://127.0.0.1:80;
>>                 proxy_set_header  X-Real-IP  $remote_addr;
>>                 proxy_set_header  Host        $host;
>>                 proxy_set_header  MCKEY  "$uri?$args";
>>         }
>>         #дальше идет набор правил для отдачи статики
>>         #вроде такого
>>         location ~ ^/preview/ {
>>                 root /media/foo.ru;
>>                 access_log /var/log/nginx/foo.ru/www/images.log;
>>         }
>>     }
>> }
>>
>>
>> Чем можно объяснить такую странность?
>>
>>
>> PS
>> некоторые наблюдения:
>>
>> 1) В топе ничего подозрительного нет:
>> last pid: 74125;  load averages:  0.02,  0.12,  0.14
>> 76 processes:  2 running, 74 sleeping
>> CPU:  2.1% user,  0.0% nice,  1.0% system,  0.1% interrupt, 96.9% idle
>> Mem: 270M Active, 2576M Inact, 244M Wired, 84M Cache, 112M Buf, 72M Free
>> Swap: 4096M Total, 4096M Free
>>
>> 2) Воркеры nginx и memcached находятся в состоянии kqread
>>
>> 3)
>> # netstat -an -p tcp | wc -l
>> 4551
>> # netstat -an -p tcp | grep ESTA | wc -l
>> 2318
>> # netstat -an -p tcp | grep WAIT | wc -l
>> 2126
>>
>> 4) #netstat -m
>> 440/3595/4035 mbufs in use (current/cache/total)
>> 292/1842/2134/25600 mbuf clusters in use (current/cache/total/max)
>> 292/604 mbuf+clusters out of packet secondary zone in use (current/cache)
>> 58/682/740/12800 4k (page size) jumbo clusters in use
>> (current/cache/total/max)
>> 0/0/0/6400 9k jumbo clusters in use (current/cache/total/max)
>> 0/0/0/3200 16k jumbo clusters in use (current/cache/total/max)
>> 926K/7310K/8236K bytes allocated to network (current/cache/total)
>> 0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
>> 0/0/0 requests for jumbo clusters denied (4k/9k/16k)
>> 45/223/6656 sfbufs in use (current/peak/max)
>> 0 requests for sfbufs denied
>> 0 requests for sfbufs delayed
>> 130474 requests for I/O initiated by sendfile
>> 0 calls to protocol drain routines
>>
>> 5) # sysctl kern.ipc.maxsockets
>> kern.ipc.maxsockets: 25600
>>
>> 6) # vmstat -z | egrep 'tcp|ITEM'
>>  ITEM                     SIZE     LIMIT      USED      FREE  REQUESTS
>> FAILURES
>>  tcpcb:                    464,    25600,     3857,     2223, 12571044,
>> 0
>>  tcptw:                     52,     5184,      795,     4389,  4803580,
>> 51335
>>  tcpreass:                  20,     1690,        0,      676,    23233,
>> 0
>>
>> 7) # sysctl -a | grep kern.maxfile
>> kern.maxfiles: 20000
>> kern.maxfilesperproc: 20000
>>
>> 8) # sysctl net.inet.tcp.nolocaltimewait
>> net.inet.tcp.nolocaltimewait: 1
>>
>> 9) Судя по systat -if наружу идет раздача примерно 1-1.2 MB/s
>
>
> --
> С уважением,
>  Сергей Аверьянов
>


More information about the nginx-ru mailing list