memcached 在没有通知的情况下崩溃了

Spa*_*pta 6 memcache

我们严重依赖内存缓存,每月处理数十亿次请求。我们有 5 个内存缓存服务器。昨晚,我们的流量增加了 25%。图表显示每个内存缓存传输的请求和数据增加并导致它们崩溃。它开始了连锁反应,每个内存缓存服务器一个接一个崩溃(每个服务器的负载增加)。

我们在系统日志、消息、内存缓存日志文件中没有发现日志(详细设置已关闭)。

我有两个问题:

  1. 我怎样才能找出为什么会发生这种情况。如果负载是 memcache 的一个问题,是否有任何关于普通 memcache(在合适的配置上运行)可以处理多少的文档。我怎样才能增加这个值。

  2. 我怎样才能确保他们永远不会再倒下。它最终影响了我们的 mysql 服务器和复制,并影响了许多其他相关服务。我需要更多的内存缓存服务器吗?

我使用这个 init.d 脚本启动了我的 memcache:http : //pastebin.com/wfMnB4ta 其中 ENABLE_MEMCACHE 在 /etc/default/memcached 中是 YES

在/ usr /共享/分布式缓存/脚本/启动memcached的:http://pastebin.com/LaUugXye

谢谢

小智 6

我猜你运行的是 1.4.5 或更早的版本。

既然你提到流量增加,那么突然退出:

  • 您可能已达到最大连接数限制(有关此问题的一些讨论,请参阅http://memcached.org/timeouts)。
  • 如果您长时间锤击连接限制,则存在会导致 memcached 退出的错误。
  • 这在 1.4.6 中部分修复,在 1.4.7 中进一步修复,并通过 1.4.9 细化。

如果您遇到崩溃,首先要做的是确保您使用的是最新的稳定版本。如果您仍然遇到崩溃,最好的办法是联系实际的邮件列表或提交包含信息的错误报告,而不是幸运地让维护人员通过 Twitter 搜索看到这一点。

定期升级以匹配最新的稳定版可以帮助您避免将来整个集群崩溃。

  • 我面临同样的问题,我正在使用 1.4.15 (2认同)