2011-03-12 120 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 守护

数千万注意:如果您的会话中运行内存缓存这些连接是分开的。

我希望所有的事情都会这么简单。 :-)