今天起看探索服務器的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
http://www.bkjia.com/PHPjc/633195.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/633195.htmlTechArticle今天起看探索服務器的nginx產生大量日誌了,並且提示PHP Warning: Memcache::connect(): Can\'t connect to 127.0.0.1:11211, Connection timed out (110) in,後來幾經...