Re[2]: кол-во воркеров и отдача статики

Exe xmail at messir.net
Sat Feb 24 17:19:15 MSK 2007


> "причина по которым один процесс будет считывать с диска файлы в N
> потоков" заключается в сериализации доступа к файлам, дабы разгрузить
> головку жёсткого диска.
Так вот я и хочу сказать что на самом деле никакой особой сериализации
не получится. Вот обслуживает один процесс 1000 пользователей.
Тогда процесс сначала с одного файла отошлет _маленький_ потом дернет  
головкой
и пойдет считывать(вернее считывать будет ядро) очередной мелкий кусок,  
потом
еще раз дернет головкой и так далее. Т.е. винт все равно будет жестко  
задерган
вне зависимости от того один процесс его дергает или не один. Будет ли с  
учетом
этого реальная разница в скорости в зависимости от воркеров?
Точнее я бы тут хотел услышать предложения как сделать нормальный бенчмарк  
этого
дела. Интересно еще как на это разные io shedulers и NCQ влияют но это уже  
другой разговор.
Про /proc/sys/vm/drop_caches я помню, как создать кучу файлов на винте я  
знаю а вот
как сэмулировать кучу полоьзователей которые скачивают разные файлы (еще и  
с разных позиций
хотелось бы) не знаю.


> вы минимум упускаете что:
> - дисков бывает больше чем один
> - процессу надо делать не только операции io
>да практика показывает что 1 воркера очень часто недостаточно.

Очень хорошее замечание. Собственно я-то как раз и хочу сказать что:
а) один воркер не всегда является оптимальным выбором
б) особой разницы от кол-ва воркеров быть не должно в силу того что
я описал выше(на однодисковых операциях).
в) если дисков больше чем один, точнее если разные разделы на разных дисках
то я бы развесил сайты вообще на разные nginx чтобы каждый nginx дергал (и  
ждал)
только свой диск. Возможно я в этом не прав, буду еще думать.


//Черный Плащ





More information about the nginx-ru mailing list