ПРОЕКТЫ 


  АРХИВ 


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: Из за чего медленно работает nginx?



On Sunday 09 December 2012 01:58:15 Renat wrote:
> Попробовал полностью снести ArchLinux, и постановить его снова.
> Сразу же обновился:
> pacman -Syu
> После сделал рестарт и поставил nginx
> pacman -Sy nginx
> 
> К сожалению проблема не исчезла, все так же как и было ранее.

Проблема может быть и в самом пакете, что идет к вашему дистрибутиву
ArchLinux ARM. Неизвестно как и где он был собран.

А как вы собирали пакет с debug-ом? Nginx нужно собирать непосредственно на 
самом устройстве, нельзя собирать на другой системе и переносить.

Скачайте исходники nginx c http://nginx.org/en/download.html, распакуйте и 
запустите ./configure конкретно на той системе, на которой устанавливаете, и 
покажите то, что было выведено на консоль.

Nginx должен работать с сокетами в неблокирующемся режиме. Он умеет 
устанавливать этот режим тремя способами. Конкретный способ установки, который 
поддерживает система определяется на этапе конфигурации. Соответственно если 
конфигурация была выполнена на другой системе, а потом nginx был перенесен на 
систему, для которой используется иной способ - получим проблему как у вас.

Во время компиляции в исполняемый код в бинарном файле прописываются конкретные 
числовые константы, имеющие определенное значение на данной системе. И если 
nginx был перенесен на систему, где эти константы отличаются, то 
соответствующие 
системные вызовы в лучшем случае просто не будут работать и получим проблему 
как 
у вас.

Более того, поскольку эти константы берутся не из самого ядра, а из 
заголовочных 
файлов системных библиотек, и если они (библиотеки в вашей системе) не 
соответствуют реальному положению дел в ядре, то получим ситуацию как у вас.

И ещё, проверка наличия конкретного системного вызова не гарантирует его 
работоспобность, и если в ядре на вашей системе что-то сломано, и сокеты, даже
не смотря на правильную установку флага, всё равно продолжают работать в 
блокирующемся режиме - опять получим ситуацию как у вас.


> Сегодня на форуме заметил тему от maxspb85 - Медленно отдаются файлы от
> 128KB, до 128KB - без проблем. (http://forum.nginx.org/read.php?21,233728)
> 
> У меня точно так же, маленькие картинки, маленькие странички так же где-то
> до ~128кб, открываются очень быстро. Если же картинка или страница больше
> начинается непонятное торможение.

Эта тема к вашей не имеет никакого отношения. Размер файла в вашем случае имеет 
весьма косвенное влияние, у вас просто оба воркера работают в блокирующимся 
режиме, т.е. в принципе ваш nginx не способен обрабатывать более двух 
соединений 
одновременно (и работает подобно Апачу с лимитом в два процесса), поэтому 
ситуация и улучшается, если вы выключаете keepalive, в этом случае просто 
соединения быстро закрываются и это позволяет отрыть новые два, но проблема 
остается.

У вас определенно что-то с системой. И если вы хотите все-таки разобраться в 
чем 
именно, то необходимо предоставить информацию, о которой я вас прошу.

Покажите вывод ./configure для nginx на этой системе, и убедитесь, что ядро не 
внесено в IgnorePkg.

--
Валентин Бартенев
http://nginx.com/support.html
http://nginx.org/en/donation.html
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.