php memcache长连接相关,奇怪的broken pipe

null
  • 8

我的环境是docker下跑的php-fpm,php版本5.6.40 memcache版本2.2.6,当addServer选择长连接参数时,通过netstat能获取到建立了2个tcp连接(fpm的pm.start_servers为2),此时没有问题。
奇怪的是,一段时间后,程序提示:image.png
netstat也找不到这两个连接了,我推测是这两个长连接因为某些原因关闭了,但memcache的addServer所用到的hash表并没有更新到,所以出现的错误,请问有人遇到过这个问题吗,是怎么解决的呢?

ps:通过persistent=fase这个设置参数,也就是关闭memcache的长连接,或重启fpm,这个问题会消失。

回复
阅读 308
1 个回答

本身网络链接都是不靠谱的,每次用之前必须要检查一次是否正在连接中,如果未连接就重连,你这个估计是触发了某些策略,比如30秒不请求数据,释放链接,这样可以清空链接资源。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
你知道吗?

宣传栏