clone (2) atraso de 30 segundos no apache

4

Eu tenho problemas com o apache. Tudo começa há cerca de uma semana (portanto, isso pode estar relacionado às últimas atualizações do sistema) - minhas ferramentas de monitoramento me informam sobre o site que não funciona. Eu verifiquei, e parece que o pedido para cgi trivial (implementado em perl) levou 30 segundos. Depois de reiniciar, o problema do apache foi corrigido para as próximas horas / dias e, em seguida, acontece novamente.

Inicialmente desconfio do php, porque era apenas atualização (5.3.15- > 5.3.18) que pode afetar o apache. Eu tentei desgrenha-lo de volta para o 5.3.15, mas isso não corrigiu esse problema.

Em seguida, eu fiz strace e parece que o delay acontece enquanto clone () syscall:

[pid 26659] 1356268557.675934 clone( <unfinished ...>
[pid 26659] 1356268587.684401 <... clone resumed> child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0xa1033768) = 32169 <30.008452>

O próprio cgi é executado depois disso e funciona bem e rápido:

[pid 32169] 1356268587.686614 execve("/var/www/mysite.com/mycgi.cgi", ["/var/www/mysite.com/mycgi.cgi"], [/* 26 vars */]) = 0 <0.000776>

Alguma idéia de por que isso pode acontecer? Como e por que o clone (2) pode bloquear por 30 segundos ?! E com sucesso retornar depois disso ... Parece que algum tempo limite dentro do clone (), porque sempre exatamente 30 segundos.

Estou usando o Gentoo Linux endurecido, o kernel 3.5.4-endurecido-r1, o apache 2.2.23 (prefork, mod_cgi).

Atualização: provavelmente devo adicionar: esse servidor não está sobrecarregado. Os childs do Apache usam apenas cerca de 120/40 MB (VIRT / RSS). O servidor tem 2 GB de RAM e apenas 400 MB usados (sem buffers / cache).

    
por Powerman 23.12.2012 / 15:18

1 resposta

1

Isso acontece por causa da opção do kernel CONFIG_GRKERNSEC_BRUTE = y.

    
por 24.12.2012 / 03:43