Проблема при >1500 одновременных коннектов.

Вадим lvm at rkmail.ru
Tue Feb 10 18:20:35 MSK 2009


Alex Vorona пишет:
> 10.02.2009 14:28, Вадим wrote:
>> Artemiev Igor пишет:
>>> On Tue, Feb 10, 2009 at 10:27:00AM +0300, Igor Sysoev wrote:
>>>> Симптомы другие: здесь - 100% загрузка sata'шных дисков.
>>> Симптомы всё те же - резкое падение отдачи по сети. C диска читается 
>>> на пределе, а по сети отдаётся на порядок меньше.
>>>
>> Встречал подобную ситуацию:
>> 20 sata винтов (1 тб.) 8 ядер, 8 гб. RAM, Linux, Samba, Nginx
>> Конфигурация отдает большие файлы и отдает неплохо. Выжимали 1.5 
>> гигабита (500-1000 соединений) и можно было больше, да не требовалось.
>>
>> Все работает хорошо, до тех пор пока утилизация жестких дисков не 
>> достигает 100%. Как только появляется популярный файл, на который 
>> нападают 100-200 активных клиентов, жесткий диск, на котором он лежит 
>> - умирает. При этом отдача снижается почти на порядок (в реальном 
>> случае с 1.3 гбит до 200 мегабит) хоть и остальные 19 жестких дисков 
>> не нагружены.
>>
>> I/O с перегруженного диска медленно => блокировки воркеров => тормоза 
>> других клиентов, которые работают со свободными жесткими дисками => 
>> снижение отдачи трафика. При этом load average взлетает до 100 и выше.
>>
>> По-моему ничего, кроме ускорения дисковой подсистемы сделать нельзя. 
>> gmirror, mdraid (raid10), популярные файлы в tmpfs, SSD (в порядке 
>> увеличения предпочтения) могут помочь.
>>
>> Если у кого-то есть мысли буду рад выслушать.
>>
>>
> 
> Над каждым диском свой nginx. Снаружи балансер, знающий на какой из этих 
> nginx'ов нужно проксировать/редиректить любой запрос.
> 

X-воркеров на N-дисков + хитрый балансировщик, который знает где какие 
файлы лежат - сложно все это.  Самое лучшее, конечно, это если бы в 
nginx появился полноценный aio.





More information about the nginx-ru mailing list