Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: стоит ли убивать воркер а?
- To: nginx-ru@xxxxxxxxx
- Subject: Re: стоит ли убивать воркер а?
- From: Sergey Shepelev <temotor@xxxxxxxxx>
- Date: Wed, 2 Dec 2009 16:33:24 +0300
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=SDfq5I7Q/3h1Dnq0vU21Cx2q5KwFFEDqZuAQInWfu6U=; b=p4W50QgJZbJsoeZD1HQsTDJ+BCk6ULCZnMPyGall09z8ABxOwDQMrbv7t7d7Bl3yQ2 AsyKElFSjwNlbmz3o9GEVaZIvBIKLLFroY9IoaC3NYH2SF+G4zLsSnCe6oDqGWYs403+ BeXUDulrD0aqDZGabuA+O95XLB5Jm5xUmf6BI=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=tQIvkRw0TIOzGRTZTApMJJm460ymTFkn8GVB7EIuEZSYFG5OrFTXoEfb2KhfXIVScp YXlFwiTD/ciUfC3h9ejUSHwTGSEh/i9F5nHiSJV9SNrwqa1/ZkiE8IdpB9IBGmKgay2v 8HLfQm8vQwxyqqoXspdvKoo8x5IIXhYMgoIqw=
- In-reply-to: <9041d07304fc63c1aab37bd6bbbb1b1f.NginxMailingListRussian@xxxxxxxxxxxxxxx>
- References: <9041d07304fc63c1aab37bd6bbbb1b1f.NginxMailingListRussian@xxxxxxxxxxxxxxx>
2009/12/2 vromanov <nginx-forum@xxxxxxxx>:
> Написан небольшой модуль для nginx. Он при старте конектится к базе данных а
> потом бодро отдет результаты запросов к базе данных (timesten). Проблема
> возникает если во время работы nginx презапустить базу данных. Конект
> отваливается и ничего хорошего не происходит. Есть два варианта как себя
> вести в таком случае - ловить такую проблему и переконекчиваться. Сам конект
> - операция небыстрая.
> Второй случай - просо убивать такого воркера (точнее он сам себя убьет) и
> ждать, что его перезапустит мастер.
> Вопросы
> 1) Будет ли мастер перезапускать умершего воркера?
Будет. Он для этого и нужен.
> 2) Как правильно воркер может себя убить
SIGTERM (kill -15, обычное ласковое убийство)
Есть два варианта как себя вести в таком случае: ловить такую проблему
и переподключаться к базе или фейлить запрос с 500. Умирать и
оставлять запрос без ответа это абсолютно странное поведение.
Если б вы сделали ленивый "конект когда его нет", вместо пхпшного
"конект на старте", то вопроса бы не возникло. Ваша небыстрая операция
произойдёт в любом случае. В случае убийства воркера *плюс к небыстрой
операции* ещё потратится несколько сотен микросекунд на запуск нового,
в течение которых по выдуманной вами причине другие запросы будут
обрабатывать только оставшиеся воркеры.
Допустим, база падает раз в час. Лучше один медленный ответ раз в час,
чем один запрос без ответа раз в час
> Posted at Nginx Forum:
> http://forum.nginx.org/read.php?21,27384,27384#msg-27384
>
>
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://nginx.org/mailman/listinfo/nginx-ru
>
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://nginx.org/mailman/listinfo/nginx-ru
|