【问题标题】:Memcache error: Failed reading line from stream (0) ArrayMemcache 错误:从流 (0) 数组中读取行失败
【发布时间】:2011-09-23 06:31:51
【问题描述】:

当我们的服务器承受任何重大负载时,我会收到以下错误的一些变化。我已经用谷歌搜索了几个小时并尝试了一切(包括升级到最新版本和全新安装)。我已经在 SA 上阅读了所有关于它的帖子,但无法弄清楚。很多人都有同样的问题,但似乎没有人给出明确的答案。任何帮助将不胜感激。提前致谢。

致命错误:未捕获的异常 带有消息的“Zend_Session_Exception” 'Zend_Session::start() - /var/www/trunk/library/Zend/Cache/Backend/Memcached.php(行:180): 错误 #8 Memcache::get() [memcache.get]: 服务器本地主机 (tcp 11211) 失败 with:从流中读取行失败 (0) 数组

我们有一份用于测试的生产环境副本,在我们开始负载测试之前一切正常。我认为存储的最大对象大约是 170KB,但说到底它可能是大约 500KB(远低于 1MB 的限制)。仅供参考:每次页面加载时,Memcache 会被击中 10-20 次。这是 memcached 的设置:

端口="11211"
USER="memcached"
MAXCONN="1024"
CACHESIZE="64"
选项=""

我正在运行 Memcache 1.4.5 和 PHP-memcache 模块的 2.2.6 版本。 PHP 版本为 5.2.6。来自 php -i 的内存缓存详细信息:

内存缓存

内存缓存支持 => 启用
活动持久连接 => 0
版本 => 2.2.6
修订版 => $修订版:303962 $

指令 => 本地值 => 主值
memcache.allow_failover => 1 => 1
memcache.chunk_size => 8192 => 8192
memcache.default_port => 11211 => 11211
memcache.default_timeout_ms => 1000 => 1000
memcache.hash_function => crc32 => crc32
memcache.hash_strategy => 标准 => 标准
memcache.max_failover_attempts => 20 => 20

谢谢大家

【问题讨论】:

  • 我对 memcached 不熟悉,但是您是否尝试过调整设置?我认为 64MB 和 MAXCONN=1024 的 CACHESIZE 有点过于严格,可以试试 CACHESIZE="512" 和 MAXCONN="16384" 之类的东西?

标签: php zend-framework memcached


【解决方案1】:

每页加载 10-20 次?然后尝试使用持久连接。 我还会尝试运行第二个 memcached 实例并将其添加到池中。

【讨论】:

  • 持久连接没有起到作用,但第二个实例做到了。那是在我的开发服务器上,所以它们都在同一个盒子上。一旦我将它移动到具有 2 个单独的 memcached 服务器的暂存环境,问题似乎就自行解决了。谢谢你的帮助。非常感谢。
猜你喜欢
  • 2015-07-23
  • 2011-04-23
  • 2019-09-10
  • 2014-12-26
  • 2015-06-10
  • 2016-12-12
  • 1970-01-01
  • 2019-08-06
  • 1970-01-01
相关资源
最近更新 更多