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