Uma causa comum desse comportamento é clientes mal-intencionados. Eles se conectam ao seu servidor da Web, solicitam alguns dados e, em seguida, nunca lêem os dados que o servidor os envia. Isso consome seus slots de conexão.
Meu servidor apache está produzindo muitos processos no estado "gravação" até todos os slots são preenchidos e todo o servidor web trava. Aqui está o que eu tenho:
root@viking:/# uname -a
Linux viking 2.6.32-51-server #113-Ubuntu SMP Wed Aug 21 20:01:09 UTC 2013 x86_64 GNU/Linux
root@viking:/# apache2 -V
Server version: Apache/2.2.14 (Ubuntu)
Aqui está uma pilha de processo enforcado:
root@viking:/# cat /proc/14475/stack
[<ffffffff81158c39>] poll_schedule_timeout+0x39/0x60
[<ffffffff81158e93>] do_poll+0x233/0x2c0
[<ffffffff81159965>] do_sys_poll+0x155/0x210
[<ffffffff81159c1c>] sys_poll+0x7c/0x110
[<ffffffff81013172>] system_call_fastpath+0x16/0x1b
[<ffffffffffffffff>] 0xffffffffffffffff
Isso é interessante quando aparece no status do servidor:
Srv PID Acc M CPU SS Req Conn Child Slot Client VHost Request
0-0 14472 0/1033/1033 W 8.65 965 0 0.0 8.43 8.43 178.129.218.193 ***.com GET /programs/ HTTP/1.0
O que pode causar esse tipo de comportamento?
Uma causa comum desse comportamento é clientes mal-intencionados. Eles se conectam ao seu servidor da Web, solicitam alguns dados e, em seguida, nunca lêem os dados que o servidor os envia. Isso consome seus slots de conexão.
Parece que foram enforcados os pedidos de ativação para o serviço indisponível. Por alguma razão, o curl nunca expira e aguarda a resposta para sempre.
Tags apache-2.2 ubuntu-10.04