php中Memcached连接超时问题解决办法_PHP教程
程序员文章站
2022-06-16 08:55:45
...
今天起看发现服务器的nginx产生大量日志了,并且提示PHP Warning: Memcache::connect(): Can\'t connect to 127.0.0.1:11211, Connection timed out (110) in,后来几经周折找出问题所在了。
在一次例行检查日志的时候,发现Nginx日志中出现了大量的PHP连接Memcached超时的报错信息,如下:
PHP Warning: Memcache::connect(): Can't connect to 127.0.0.1:11211, Connection timed out (110) in ...
连上服务器检查Memcached进程运行正常,然后我用一段测试代码检查Memcached是否能够正常连接,结果也很正常。
于是又仔细分析日志,发现那段报错信息是间隔出现的,说明是有一定几率的。这时我回想起上周因为架构问题刚刚把PHP的Session存储路径指向到了Memcached里,可能是因为这个配置增加了Memcached的负载,从而导致在并发量较高时,Memcached出现连接超时的现象。
找到原因就容易解决了。重新调整Memcached的启动参数,增加-c参数来提高连接数量。默认为1024,可以逐步增加以找到最佳数值。我设置为2048。
启动命令为:
代码如下 | 复制代码 |
memcached -d -m 256 -c 2048 -l 127.0.0.1 -p 11211 -u root |
如果服务器充裕,可以考虑分布式的memcached集群,以降低单个节点上的压力,据说2.5有连接数量过多导致oom的bug
下一篇: 如何用ps溶图?ps怎么快速溶图?
推荐阅读
-
php Sql Server连接失败问题及解决办法
-
PHP中Session引起的脚本阻塞问题解决办法
-
php中curl和soap方式请求服务超时问题的解决
-
IIS+fastcgi下PHP运行超时问题的解决办法详解
-
PHP中PDO关闭连接的方法问题
-
PHP中Session引起的脚本阻塞问题解决办法
-
在PHP+Apache+MySQL环境下(windows系统),连接SQLServer数据出现“can not find driver”问题的解决办法
-
php fsockopen中多线程问题的解决办法[翻译]
-
解析PHP中的file_get_contents获取远程页面乱码的问题_PHP教程
-
执行、获取远程代码返回:file_get_contents 超时处理的问题详解_PHP教程