ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Затыки при отдаче статики



On 23.11.2013 11:03, Alex Vorona wrote:

А вообще я не уверен что при перегруженных HDD проблема имеет решение,
если поступающих запросов больше, чем может обслужить дисковая подсистема.

есть очень похожая задача - что делать, если трафика больше,
чем Bandwidth сетевой подсистемы. и эта задача успешно решена
практически во всех операционных системах. например, для линукса
- http://xgu.ru/wiki/QoS_в_Linux, Hierarchy Token Bucket и т.п.

разница только в том, что Bandwidth сетевой подсистемы измеряется
в мегабитах в секунду, а Bandwidth дисковой подсистемы - в IOPS.
например, в новых версиях OpenVZ уже появилась опция --iopslimit iops
также в линуксе есть ionice с 4 класами и 8 приоритетами внутри класса.

теоретически, - если клиенты не однородны, (например, те, кто платит
деньги за доступ к контенту и те, кто получает доступ к нему бесплатно)
то можно разделить их по классам и назначить разные уровни приоритета.
сейчас же обычно все свалено в одну кучу, и никаких QoS настроек нет.

поскольку native поддержки для этого в nginx нет и вряд ли когда-либо
появится, то это все придется делать средствами операционной системы.

хотя обычно тюнинг nginx и операционной системы, чтобы данные с дисков
читались большими блоками по 1 мегабайту - помогает и этого достаточно.

еще скрытые резервы для повышения производительности могут быть в том,
что дисковое хранилище собрано в виде RAID массива 5/6/10/... - в таком
случае сам RAID массив является узким местом и его лучше разобрать
на "отдельные" диски или RAID-1 массивы из N дисков. в этом случае,
если software raid / hardware raid не кривой - скорость random
чтения с RAID-1 массива из N дисков будет примерно в N раз выше.

или же - добавить SSD к системе хранения файлов в том или ином виде
(Bcache,Flashcache,Btier,EnhanceIO, nginx+ngx_slowfs_cache, etc...)
туда уйдет самый "горячий" контент и вся система выдаст больше IOPS.

кстати, странно что функциональности модуля ngx_slowfs_cache
нет в основной ветке nginx, - чтобы сделать что-то аналогичное
без ngx_slowfs_cache придется использовать "двойное проксирование".
хотя может быть overhead от этого не большой и это вполне приемлимо.
но настройка получается не тривиальной: http://habrahabr.ru/post/202290/

--
Best regards,
 Gena

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.