Запуск PHP сессии иногда занимает очень много времени
Некоторое время назад мы столкнулись с интересной проблемой. Иногда (не каждый раз, давайте притворяться, почти каждый 100-200 попаданий) session_start() занимает очень много времени. До 60 секунд (самый длинный был 63, обычно около 50).
Сервер работает под управлением CentOS 6.5 (ядро Linux 2.6.32-431.17.1.el6.x86_64) nginx/1.4.7 (да, я знаю, что он старый) + Apache/2.2.15 + PHP 5.3.3 (с использованием mod_php) Два intel SSD 530 делает рейд 0 Существует много бесплатных баранов 5+ ГБ. Я попытался настроить значение vm.swappiness, может быть, это из-за какой-то транзакции памяти-диска. Нет помощи.
Появляется, даже если на сервере почти нет нагрузки.
Сессия хранится в файлах. Поместите сессии на ramdrive (tmpfs). Нет помощи. В каталоге около пары сотен файлов сессий. Так что не должно быть проблемы с поиском. Иногда та же проблема возникает при использовании include / require, php требуется несколько секунд для загрузки файла перед началом его обработки. Так что это какая-то проблема. atop / top не показывал ничего ненормального, пока зависает процесс запуска сеанса.
свободный вывод -m во время зависания
total used free shared buffers cached
Mem: 32101 23485 8616 0 1532 15642
-/+ buffers/cache: 6310 25790
Swap: 16383 1222 15160
свободный -m вывод нормальный
total used free shared buffers cached
Mem: 32101 23438 8662 0 1532 15623
-/+ buffers/cache: 6281 25819
Swap: 16383 1222 15160
nginx напиши это в лог во время замедления
2015/09/29 15:40:36 [warn] 16854#0: *14779 восходящий ответ буферизируется во временный файл /var/cache/nginx/proxy_temp/1/02/0000000021 при чтении в восходящем направлении
попытался установить proxy_max_temp_file_size, но без помощи.
Может кто знает, в чем может быть причина, или в этом направлении копать