Когда я выполняю strace на процессе apache, я вижу много gettimeofday до и после запроса GET, даже когда 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 read(156, 0x7f01d4007018, 8000) = -1 EAGAIN (Ресурс временно недоступен) 1616 0.000042 опрос([{fd=156, events=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.
Что я наделал:
- На всякий случай я отключил ExtendedStatus в httpd.conf.
- Я последовал совету команды Red Hat и сделал следующее:
echo "kernel.vsyscall64 = 2" >> /etc/sysctl.conf
и последующее редактирование sysctl. - эхо 1 > /proc/sys/kernel/vsyscall64
Это немного увеличило скорость ответа Apache 2.4, но она все еще медленная и там много Gettimeofday. У меня нет modsecurity и только стандартные модули Apache. Тем не менее, я подозреваю модуль.
Я проверил, был ли это ioncube 5.0.2, но это не так.
Это нормально? Если нет, как вы думаете, это может быть связано с модулем Apache?
правка: похоже, что это соответствует 3 временным меткам, скопированным в 3 журнала, записывающим три ошибки/предупреждения.
Спасибо тебе.