2014-04-11 55 views
6

我注意到間歇問題與我們的Memcached會話處理程序。出現的錯誤是:無法寫會話數據(memcache)

Unknown: Failed to write session data (memcache). Please verify that the current setting of session.save_path is correct.

注:

  • 這似乎是一個全天5或6次,以各種用戶的間歇性問題。
  • Memcached不是本地主機。即它位於與Web服務器不同的服務器上。
  • 我正在使用Memcache擴展(與MemcacheD擴展相反)。
  • 我正在使用tcp前綴。如果你看看this question,你會發現如果你使用的是Memcache擴展,那麼「修正」就是把tcp://作爲前綴。

我的php.ini設置:

session.save_handler = memcache 
session.save_path = "tcp://64.233.191.255:11211" 

請注意,我還使用:

session.save_path = "tcp://64.233.191.255:11211?persistent=1&weight=1&timeout=1&retry_interval=15" 

但它似乎並不重要。

經過了memcached.log文件,在那裏我發現了以下錯誤:

Failed to write, and not due to blocking: Connection reset by peer.

注:會出現此特定錯誤至少一次,在同一時間(上午01點07分),日常。然後它會在整個一天偶爾發生。

+0

在Web服務器日誌中出現錯誤的時候,您是否檢查過Memcache服務器的日誌文件?看起來像一個連接問題。也許是因爲加載偷看? – hek2mgl

+0

我會去解決網絡問題。 memcache機器上的一些cron作業?臨時的高網絡負載? –

+0

@PawełSpychalski是的。機器上有cron作業。我們有一個在午夜運行的數據庫備份。但是,該機器有很多內核,並且它經常會看到4.00 + 1:09 AM的負載會是非常低的峯值。 –

回答

2

也許你是running out of filehandles?備份可能會讓你的機器交換,導致響應速度變慢,這意味着更多的併發連接到memcached進程導致一個匆忙的結果。