php中Memcached连接超时问题解决办法
程序员文章站
2024-02-08 17:34:28
...
今天起看发现服务器的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
上一篇: 浅谈php命令行用法
推荐阅读
-
PHP中in_array函数使用的问题与解决办法
-
PHP中Session引起的脚本阻塞问题解决办法_PHP教程
-
浅析关于PHP中Sphinx长连接问题_PHP教程
-
php提取csv格式文件中的字符串出现的问题及解决办法
-
php file_get_content()连接超时问题
-
dubbo中zookeeper请求超时问题:mybatis+spring连接mysql8.0.15的配置
-
php开发中数据库连接创建和关闭的较好时机问题
-
php fsockopen中多线程问题的解决办法[翻译]_PHP
-
类中数据库访问-求php开发中数据库连接创建和关闭的较好时机问题
-
请问php中session的超时时间问题