【发布时间】: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