2011-03-12 121 views
1

我正在運行一個非常大的Rails應用程序。我們使用Memcached服務器池和Evan Reaver的gem memcached,並且有兩個用於對象/片段的命名空間和一個用於會話的命名空間。Memcached連接已斷開

我們使用會話服務器數量的一半,因爲我們用於對象/片段。

由於某些神祕原因,Rails應用程序只能打開由memcached守護程序設置的最大可用連接數的20-30%。它似乎也是從列出的第一臺服務器獲取最大連接數。

有沒有人有這種奇怪的行爲的任何輸入?

+0

愚蠢的stackoverflow不允許我編輯少於6個字符。這不是「兩個命名空間」嗎? – karatedog 2011-03-12 21:57:34

+0

karatedog:修正了拼寫錯誤。 – Erik 2011-03-13 04:37:17

回答

0

原來這個解決方案非常簡單。 每個服務器和memcache守護進程每個Ruby worker只能獲得一個連接。

數學讓來自全國各地的所有Web服務器,然後你的Rails應用程序可能的連接總數可以計算爲簡單:網絡的紅寶石工人

x個

y個服務器

內存緩存守護程序的z個


=(X)(Y)(Z)給你總連接到所有的memcached 守護

數千萬注意:如果您的會話中運行內存緩存這些連接是分開的。

我希望所有的事情都會這麼簡單。 :-)