Hello! On Mon, Aug 17, 2015 at 09:35:25PM +0300, Gena Makhomed wrote:
> On 17.08.2015 14:57, Maxim Dounin wrote: > > >Наиболее неприятный из известных мне нюансов состоит в том, что > >неразблокированные элементы кеша остаются, если какому-либо из > >рабочих процессов сказать TERM. Например, такое иногда практикуют > >для принудительного завершения старых рабочих процессов, плавное > >завершение которых занимает слишком много времени. > > Эту проблему можно решить, если элементы кеша блокировать не навсегда, > а на какое-то определенное количество времени, и по прошествии этого > времени - считать существующую блокировку элемента недействительной. Чтобы блокировать "не навсегда", умеющий это обрабатывать код должен быть в том числе со стороны запроса, которому данная блокировка нужна. Чтобы периодически блокировку обновлял, и был готов к тому, что её уберут, и всё это - со всеми прилагающимися дополнительными затратами ресурсов. В противном случае - будут segfault'ы, если таки выкинут нужную блокировку. На практике вполне неплохо работает вывод сообщений в логи и перемещение заблокированных элементов в начало очереди, реализованное для обработки удаления старых элементов по inactive. Проблемы, судя по рассылке, наблюдаются у тех, кто очистку по inactive фактически выключил - и, видимо, в сочетании с какой-то ещё проблемой, какой - пока непонятно. -- Maxim Dounin http://nginx.org/ _______________________________________________ nginx-ru mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx-ru
