Muitos gettimeofday no Apache 2.4 + fcgid + centos 6.6 - Tempo de espera longo para arquivos estáticos

2

Quando executo uma strace no processo do apache, vejo muitos gettimeofday antes de & após 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 o php 5.6, fcgid) atenda à solicitação GET.

 1616       0.000048 read(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 (Resource temporarily unavailable)
1616       0.000042 poll([{fd=156, events=POLLIN}], 1, 7915439 
1670       0.020724 <... epoll_wait resumed> {}, 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}, NULL) = 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}, NULL) = 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}, NULL) = 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}, NULL) = 0
1670       0.000071 gettimeofday({1430592207, 353727}, NULL) = 0
1670       0.000045 epoll_wait(155, {}, 100, 100) = 0
Há muitos deles antes que o servidor realmente retorne a resposta para GET.

O que eu fiz:

  • Eu configurei o ExtendedStatus desativado no httpd.conf apenas por precaução.
  • Eu segui o conselho da equipe da Red Hat fazendo uma
    echo "kernel.vsyscall64 = 2" >> /etc/sysctl.conf
    & editando sysctl depois.
  • echo 1 > / proc / sys / kernel / vsyscall64

Isso aumentou ligeiramente a velocidade de resposta do Apache 2.4, mas ainda é lento e há muito Gettimeofday. Eu não tenho modsecurity e apenas módulos padrão do Apache. No entanto, eu suspeito de um módulo.

Eu 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?

edit: parece que corresponde a 3 timestamps copiados para 3 logs, anotando três erros / avisos.

obrigado.

    
por Nicolas Guérinet 02.05.2015 / 21:09

0 respostas