Некоторое время назад мы столкнулись с интересной проблемой. Иногда (не каждый раз, давайте представим, что почти каждые 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 делает Raid 0 Очень много оперативной памяти 5+ Гб. Я пытался настроить значение vm.swappiness, возможно, это из-за какой-то транзакции с диском памяти. Нет помощи.
Оно появляется даже в том случае, если на сервере почти нет нагрузки.
Сессия хранится в файлах. Поместите сеансы на ramdrive (tmpfs). Нет помощи. В каталоге около пары сотен файлов сеансов. Так что проблем с поиском быть не должно. Иногда такая же проблема возникает при включении / требовании, php требуется несколько секунд для загрузки файла перед началом его обработки. Так что это проблема io. atop / top не показал ничего ненормального, пока процесс запуска сеанса зависает.
free -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 [предупреждение] 16854 # 0: * 14779 ответ восходящего потока буферизируется во временный файл / var / cache / nginx / proxy_temp / 1/02/0000000021 при чтении восходящего потока
попытался установить proxy_max_temp_file_size, но без помощи.
Может кто знает в чем может быть причина, или в этом направлении копать