Re: Медленная отдача статики

Maxim Dounin mdounin at mdounin.ru
Wed Oct 30 12:08:49 UTC 2013


Hello!

On Mon, Oct 28, 2013 at 12:34:33PM -0400, buddha wrote:

> Привет всем. 
>  Знаю что вопрос уже обсуждался - почитал, попробовал - не выходит.
> 
>  Есть проблема с медленной отдачей статики. Что это значит:
> 
> Отдача файла(js) ~40kb за 300-400ms
> на drive.ru или ya 40kb за 70-90ms
> 
> Т.е. разница в разы. и она ощутима.
> 
> ping до сервера ~70ms
> до drive и ya ~ 20-30ms
> 
> отдает Nginx, config:
> 
> location / {
>    sendfile on;
>    access_log off;
>    expires 4M;
> 
>    root /var/www/static
> }
> 
> сервер находится у хетцнера.
> 
> Подскажите как можно приблизить скорость отдачи к drive или ya.
> Если сервер, диск(хотя iowait 0.01-0.05), то подскажите на что его можно
> заменить

Судя по цифрам, то, что у вас получается - это в первую очередь 
результат большого RTT + работы механизмов Congestion Control 
протокола TCP.

Можно пытаться походить в сторону тюнинга initial congestion 
window size.  Но, строго говоря, много это всё равно не даст - 
где-то пару round trip'ов можно сэкономить при использовании 
сейчас усиленно продвигаемого initial cwnd в 10 пакетов (и чем 
больше ответ - тем меньше разница).  Ну и на всякий случай 
напомню, что с тюнингом таких вещей следует быть осторожным, т.к.  
подобные действия отражаются на всех в сети.  Прежде, чем 
ковыряться - лучше как минимум ознакомиться с теоретической 
стороной вопроса.

Вообще, IMHO, в первую очередь имеет смысл смотреть за тем, чтобы 
с клиентами обеспечивались постоянные соединения.  В nginx'е они 
по умолчанию включены, но лишний раз проверить не помешает.  В 
частности - посмотреть на директиву keepalive_timeout и убедиться, 
что там никто не написал 0 в попытке поэкономить соединения.

-- 
Maxim Dounin
http://nginx.org/en/donation.html



Подробная информация о списке рассылки nginx-ru