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