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