Quando executo um strace no processo Apache, vejo muitos gettimeofday antes e depois da solicitação GET, mesmo quando o Apache retorna um arquivo estático como um arquivo de imagem. Isso resulta em um longo período de inatividade antes que o Apache 2.4 (com php 5.6, fcgid) responda à solicitação GET.
1616 0,000048 leitura(156, "GET / HTTP/1.1\r\n", 8000) = 16 1616 0,000099 gettimeofday({1430592206, 931114}, NULL) = 0 1616 0,000044 gettimeofday({1430592206, 931156}, NULL) = 0 1616 0,000035 read(156, 0x7f01d4007018, 8000) = -1 EAGAIN (Recurso temporariamente indisponível) 1616 0,000042 enquete([{fd=156, events=POLLIN}], 1, 7915439 1670 0,020724 <... epoll_wait retomado> {}, 100, 100) = 0 1670 0,000039 gettimeofday({1430592206, 951998}, NULL) = 0 1670 0,000037 gettimeofday({1430592206, 952034}, NULL) = 0 1670 0,000033 gettimeofday({1430592206, 952066}, NULL) = 0 1670 0,000032 epoll_wait(155, {}, 100, 100) = 0 1670 0,100265 gettimeofday({1430592207, 52366}, NULO) = 0 1670 0,000041 gettimeofday({1430592207, 52405}, NULL) = 0 1670 0,000033 gettimeofday({1430592207, 52437}, NULL) = 0 1670 0,000033 epoll_wait(155, {}, 100, 100) = 0 1670 0,100324 gettimeofday({1430592207, 152804}, NULO) = 0 1670 0,000066 gettimeofday({1430592207, 152865}, NULL) = 0 1670 0,000073 gettimeofday({1430592207, 152941}, NULL) = 0 1670 0,000060 epoll_wait(155, {}, 100, 100) = 0 1670 0,100251 gettimeofday({1430592207, 253247}, NULO) = 0 1670 0,000039 gettimeofday({1430592207, 253284}, NULL) = 0 1670 0,000032 gettimeofday({1430592207, 253316}, NULL) = 0 1670 0,000032 epoll_wait(155, {}, 100, 100) = 0 1670 0,100241 gettimeofday({1430592207, 353597}, NULL) = 0 1670 0,000061 gettimeofday({1430592207, 353653}, NULO) = 0 1670 0,000071 gettimeofday({1430592207, 353727}, NULL) = 0 1670 0,000045 epoll_wait(155, {}, 100, 100) = 0Existem muitos deles antes que o servidor realmente retorne a resposta ao GET.
O que eu fiz:
- Eu configurei o ExtendedStatus em httpd.conf apenas para garantir.
- Segui o conselho da equipe Red Hat fazendo um
echo "kernel.vsyscall64 = 2" >> /etc/sysctl.conf
e editando o sysctl posteriormente. - eco 1 > /proc/sys/kernel/vsyscall64
Isso aumentou ligeiramente a velocidade de resposta do Apache 2.4, mas ainda é lento e há muito Gettimeofday. Não tenho modsecurity e apenas módulos padrão do Apache. No entanto, suspeito de um módulo.
Verifiquei se era o ioncube 5.0.2, mas não era.
Isso é normal? Se não, você acha que poderia vir de um módulo do Apache?
editar: parece que corresponde a 3 carimbos de data/hora copiados para 3 logs, anotando três erros/avisos.
obrigado.