Welcome! Log In Create A New Profile

Advanced

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

Maxim Dounin
March 01, 2016 12:50PM
Hello!

On Tue, Mar 01, 2016 at 11:25:17AM -0500, mikhal123 wrote:

> Валентин Бартенев Wrote:
> -------------------------------------------------------
> > On Tuesday 01 March 2016 10:52:08 mikhal123 wrote:
> > > Валентин Бартенев Wrote:
> > >
> > Это всё и объясняет. Нельзя изменять файлы, которые раздаются. Клиент
> получит мусор, а вы получите странную ошибку или такое вот зацикливание.
> >
> > Если вы хотите переписать файл, то делать это нужно атомарно, иначе
> представления nginx об отдаваемом файле и его размере разойдутся с
> фактическим на файловой системе. У вас вероятность этого события была
> увеличена ещё в несколько раз включенным "open_file_cache".
>
> Хм, что-то я не совсем понимаю ...
>
> Вы утверждаете, что вот такие вот графики
> http://i023.radikal.ru/1602/db/01658625aa1f.png для nginx являются нормой?
> Что если представления nginx об отдаваемом файле и его размере по каким-то
> причинам разойдутся с фактическим на файловой системе, то он считает себя
> вправе войти в бесконечный цикл с пребыванием по большей части в контексте
> system?

Это, безусловно, ошибка - должна быть ругань в логе, а не цикл.
E.g, при выключенном sendfile'е - будет что-то вроде:

[alert] ... read() read only ... of ... from "..."

А на FreeBSD и при использовании sendfile() в таком случае будет:

[alert] ... sendfile() reported that "..." was truncated at ...

На Linux'е интерфейс sendfile() несколько другой, и явного
детектирования таких ошибок сейчас nginx делать не умеет.
Когда-нибудь обязательно научим, тем более, что при использовании
thread'ов это стало нехорошо проявляться.

Следует, однако, понимать, что в случае неатомарного обновления
файлов клиент имеет все шансы получить произвольную смесь из
старого и нового файлов (не говоря уже о новом содержимом,
обрезанном по старому размеру), и делать так - не надо. А если вы
так делаете - то надо быть готовым как минимум к мусору в ответах,
а как максимум - и к более другим проблемам.

[...]

> и просто ради понимания - почему же все это началось только после перехода с
> Debian 8?
> до этого в точной такой же конфигурации nginx и при перезаписывании файла
> все отлично работало (без мусора в ответах, безконечных циклов и т.д) как
> минимум два года

"В точно такой же конфигурации" - это вряд ли. Два года назад в
nginx'е не было поддержи "aio threads", а на цикл вы наступили
именно из-за неё - в обычной ситуации на Linux'е соединение просто
повиснет до таймаута.

Что до мусора, то тут всё зависит от везения и конкретного формата
данных. Если специально не пытаться ловить повреждения данных -
можно долго ничего не замечать, списывая проблемы на подземный
стук.

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

_______________________________________________
nginx-ru mailing list
nginx-ru@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

mikhal123 February 22, 2016 03:29AM

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

Валентин Бартенев February 22, 2016 04:52AM

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

mikhal123 February 22, 2016 06:58AM

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

mikhal123 February 22, 2016 10:00AM

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

Vasiliy P. Melnik February 22, 2016 11:22AM

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

Vasiliy P. Melnik February 22, 2016 11:22AM

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

mikhal123 February 22, 2016 01:20PM

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

Валентин Бартенев February 24, 2016 10:24AM

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

mikhal123 February 24, 2016 11:25AM

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

Валентин Бартенев February 24, 2016 11:46AM

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

mikhal123 February 24, 2016 12:15PM

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

Михаил Монашёв February 24, 2016 01:14PM

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

Валентин Бартенев February 24, 2016 01:20PM

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

mikhal123 February 24, 2016 01:57PM

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

mikhal123 February 26, 2016 01:34PM

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

Валентин Бартенев February 26, 2016 04:38PM

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

mikhal123 February 27, 2016 02:51AM

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

Валентин Бартенев February 27, 2016 05:24AM

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

mikhal123 February 29, 2016 03:18PM

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

Валентин Бартенев March 01, 2016 04:28AM

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

mikhal123 March 01, 2016 10:52AM

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

Валентин Бартенев March 01, 2016 11:04AM

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

Maxim Dounin March 01, 2016 11:12AM

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

mikhal123 March 01, 2016 11:27AM

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

mikhal123 March 01, 2016 11:25AM

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

Maxim Dounin March 01, 2016 12:50PM

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

mikhal123 March 01, 2016 01:05PM

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

Maxim Dounin March 01, 2016 01:26PM

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

mikhal123 March 01, 2016 02:05PM

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

Evgeniy Berdnikov March 02, 2016 02:24AM

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

mikhal123 March 02, 2016 08:41AM

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

Evgeniy Berdnikov March 02, 2016 11:16AM

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

mikhal123 March 02, 2016 11:55AM

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

Maxim Konovalov March 02, 2016 12:10PM

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

mikhal123 February 25, 2016 02:26PM

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

ALex_hha February 25, 2016 02:44PM

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

mikhal123 February 25, 2016 02:52PM

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

Валентин Бартенев February 25, 2016 02:58PM

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

mikhal123 February 25, 2016 03:05PM

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

Валентин Бартенев February 25, 2016 03:10PM

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

ALex_hha February 25, 2016 06:42PM

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

Aleksandr Sytar February 26, 2016 01:52AM

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

ALex_hha February 26, 2016 03:20AM

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

Vadim Lazovskiy February 26, 2016 03:40AM

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

ALex_hha February 26, 2016 03:46AM

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

Валентин Бартенев February 26, 2016 06:12AM

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

mikhal123 February 26, 2016 09:41AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 148
Record Number of Users: 6 on February 13, 2018
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready