Apache 2.4 + fcgid + centos 6.6 中的许多 gettimeofday - 静态文件的等待时间过长

Apache 2.4 + fcgid + centos 6.6 中的许多 gettimeofday - 静态文件的等待时间过长

当我对 Apache 进程执行 strace 时,我看到 GET 请求前后有很多 gettimeofday,即使 Apache 返回的是静态文件(如图像文件)。这导致 Apache 2.4(使用 php 5.6,fcgid)在响应 GET 请求之前有一段较长的停机时间。

1616 0.000048 读取(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 读取(156,0x7f01d4007018,8000)= -1 EAGAIN(资源暂时不可用)
1616 0.000042 民意调查([{fd=156, 事件=POLLIN}], 1, 7915439
1670 0.020724 <...epoll_wait 已恢复> {}, 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
在服务器实际返回 GET 响应之前,还有很多这样的请求。

我做了什么:

  • 为了以防万一,我已经在 httpd.conf 中将 ExtendedStatus 设置为 off。
  • 我遵循了红帽团队的建议,做了
    回显“kernel.vsyscall64 = 2”>> /etc/sysctl.conf
    然后编辑 sysctl。
  • echo 1 > /proc/sys/kernel/vsyscall64

这稍微提高了 Apache 2.4 的响应速度,但仍然很慢,并且 Gettimeofday 很多。我没有 modsecurity,只有 Apache 的标准模块。尽管如此,我还是怀疑是模块的问题。

我已经检查过它是否是 ioncube 5.0.2,但不是。

这正常吗?如果不是,您认为它可能来自 Apache 的模块吗?

编辑:它看起来与复制到 3 个日志的 3 个时间戳相匹配,写下三个错误/警告。

谢谢你。

相关内容