Re: nginx отъедает все процессорное время

mikhal123 nginx-forum на forum.nginx.org
Вт Мар 1 18:05:37 UTC 2016


Maxim Dounin Wrote:
> Это, безусловно, ошибка - должна быть ругань в логе, а не цикл.
> E.g, при выключенном sendfile'е - будет что-то вроде:
> 
> [alert] ... read() read only ... of ... from "..."
> 
> А на FreeBSD и при использовании sendfile() в таком случае будет:
> 
> [alert] ... sendfile() reported that "..." was truncated at ...
> 
> На Linux'е интерфейс sendfile() несколько другой, и явного 
> детектирования таких ошибок сейчас nginx делать не умеет.  
> Когда-нибудь обязательно научим, тем более, что при использовании 
> thread'ов это стало нехорошо проявляться.
> 
> Следует, однако, понимать, что в случае неатомарного обновления 
> файлов клиент имеет все шансы получить произвольную смесь из 
> старого и нового файлов (не говоря уже о новом содержимом, 
> обрезанном по старому размеру), и делать так - не надо.  А если вы 
> так делаете - то надо быть готовым как минимум к мусору в ответах, 
> а как максимум - и к более другим проблемам.
> 
> "В точно такой же конфигурации" - это вряд ли.  Два года назад в 
> nginx'е не было поддержи "aio threads", а на цикл вы наступили 
> именно из-за неё - в обычной ситуации на Linux'е соединение просто 
> повиснет до таймаута.
> 
> Что до мусора, то тут всё зависит от везения и конкретного формата 
> данных.  Если специально не пытаться ловить повреждения данных - 
> можно долго ничего не замечать, списывая проблемы на подземный 
> стук.

По поводу iao threads согласен, запамятовал что включил его после
обновления

Про ошибки
[alert] ... read() read only ... of ... from "..."
помню, встречал. В моем случае решается несложно - обновляемый файл (а мне
нужно его обновлять, тут никуда не деться) всегда дополняется пробелами до
заранее заданного размера, и nginx остается доволен

Но проблему с зацикливанием, как я понимаю, в ближайшее время вы не сможете
решить, и как самый простой вариант - отключить aio threads до лучших
времен?

Posted at Nginx Forum: https://forum.nginx.org/read.php?21,264701,264984#msg-264984



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