程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php中Memcached連接超時問題解決辦法

php中Memcached連接超時問題解決辦法

編輯:關於PHP編程

今天起看發現服務器的nginx產生大量日志了,並且提示PHP Warning: Memcache::connect(): Can\'t connect to 127.0.0.1:11211, Connection timed out (110) in,後來幾經周折找出問題所在了。

在一次例行檢查日志的時候,發現Nginx日志中出現了大量的PHP連接Memcached超時的報錯信息,如下:

PHP Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110) in ...

連上服務器檢查Memcached進程運行正常,然後我用一段測試代碼檢查Memcached是否能夠正常連接,結果也很正常。

於是又仔細分析日志,發現那段報錯信息是間隔出現的,說明是有一定幾率的。這時我回想起上周因為架構問題剛剛把PHP的Session存儲路徑指向到了Memcached裡,可能是因為這個配置增加了Memcached的負載,從而導致在並發量較高時,Memcached出現連接超時的現象。

找到原因就容易解決了。重新調整Memcached的啟動參數,增加-c參數來提高連接數量。默認為1024,可以逐步增加以找到最佳數值。我設置為2048。

啟動命令為:

 代碼如下 復制代碼

memcached -d -m 256 -c 2048 -l 127.0.0.1 -p 11211 -u root

如果服務器充裕,可以考慮分布式的memcached集群,以降低單個節點上的壓力,據說2.5有連接數量過多導致oom的bug

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved