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

Maxim Dounin mdounin на mdounin.ru
Вт Мар 1 16:10:02 UTC 2016


Hello!

On Tue, Mar 01, 2016 at 07:02:04PM +0300, Валентин Бартенев wrote:

> On Tuesday 01 March 2016 10:52:08 mikhal123 wrote:
> > Валентин Бартенев Wrote:
> > 
> > > Лог получил. У вас в процессе работы nginx что-то с файлами происходит,
> > они как-то изменяются, редактируются, обновляются?
> > 
> > Да. Именно тот файл, из-за которого судя по логам все и происходит,
> > обновляется один раз в 15 секунд.
> > Крон дергает небольшой пхп-скриптик, который делает простейшую запись в этот
> > файл.
> > Если это существенно, то выглядит вот так:
> > $handler = fopen($filename, "w+");
> > fwrite($handler, $output);
> > fflush($handler);
> > fclose($handler);
> > 
> [..]
> 
> Это всё и объясняет.  Нельзя изменять файлы, которые раздаются.  Клиент
> получит мусор, а вы получите странную ошибку или такое вот зацикливание.
> 
> Если вы хотите переписать файл, то делать это нужно атомарно, иначе
> представления nginx об отдаваемом файле и его размере разойдутся с
> фактическим на файловой системе.  У вас вероятность этого события была
> увеличена ещё в несколько раз включенным "open_file_cache".

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

-- 
Maxim Dounin
http://nginx.org/



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