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

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


Maxim Dounin Wrote:
> Ну то есть вы тщательно проигнорировали всё то доброе и вечное, что 
> nginx писал вам про некорректность вашей работы с файлами, и 
> вместо того, чтобы исправить проблему, заткнули сообщение, 
> дополнив файл пробелами?  И, судя по тому, что сейчас у вас всё 
> зацикливается - ещё и убрали из кода это дополнение пробелами?  
> Почему-то вспоминается старый анекдот про японскую бензопилу. ;)
> 
> Не надо так.  Обновляйте файл атомарно, i.e., пишите новый файл, а 
> потом делайте rename() в старое имя.  И будет вам счастье.
> 
> > Но проблему с зацикливанием, как я понимаю, в ближайшее время вы не
> сможете решить, и как самый простой вариант - отключить aio threads до
лучших
> > времен?
> 
> Самый простой вариант - починить обновление файла, сделав его 
> атомарным.

это было году так в 2006-2007 в совершенно другом проекте, и тогда это
показалось мне замечательным решением :)
а в этом проекте таких строчек в логах не помню, видно из-за того что
sendfile был включен с самого начала и какие-то там дурацкие алармы не
мозолили глаза :)

ок, последую вашей рекомендации с rename()

p.s. но вы бы все-таки как-то отразили суть данной беседы в документации. не
один я меняю файлы через обычный fopen('w+'), и некоторые из таких тоже
могут попасть на данный баг с aio threads. у меня то выделенный сервер с
ксеоном и большим запасом по мощности, а вот обычные vds-ки могут не
обрадоваться таким циклам

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



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