php并发连接到redis超时

问题描述

大家 我有三台PHP服务器(8C,16G),每台PHP服务器设置如下:

pm.max_requests = 1024
pm.max_children = 370
pm.start_servers = 100
pm.min_spare_servers = 10
pm.max_spare_servers = 20
request_terminate_timeout = 120
request_slowlog_timeout = 1s

并发发送1000个的时候,发现每个PHP服务器的负载都很高。发现PHP连接redis有超时:

poll([{fd=5,events=POLLIN|POLLPRI|POLLERR|POLLHUP}],1,0) = 0 (Timeout)
poll([{fd=5,0) = 0 (Timeout)

我使用的是lsof命令:

[root@10-13-82-25 ~]# lsof -d 5 |grep 19822
PHP-fpm  19822  www  5u     IPv4  6625694  0t0   TCP 10-13-82-25:mcagent->10.13.151.44:6379 (ESTABLISHED)

redis(2G,8G) 参数配置:

tcp-backlog 262144

PHPredis 版本:5.3.2 PHP 版本:7.0.26 Redis 版本:4.0.2 我真的不知道为什么会发生超时。请帮我。认为!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)