啟動 PHP 會話有時需要很長時間

啟動 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) 兩mod_php) 兩個intel SSD 530 使 Raid 0 有許多可用的 ram 5+ GB。我嘗試調整 vm.swappiness 值,可能是因為某些記憶體磁碟事務。沒有幫助。

即使伺服器上幾乎沒有負載,它也會出現。
會話儲存在文件中。將會話放在 ramdrive (tmpfs) 上。沒有幫助。目錄中有大約數百個會話檔案。所以不應該有查找問題。有時,在 include/require 上也會出現相同的問題,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

free -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 但沒有幫助。

有人可能知道可能是什麼原因,或是朝這個方向挖掘

相關內容