微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – Mongo连接失败并且’传输端点未连接’

我有2台服务器安装.

具有Apache的Web服务器和具有MongoDB的DB服务器.

负载测试它,并在~300 RPS我收到此错误

PHP Fatal error: Uncaught exception ‘MongoConnectionException’ with
message ‘Transport endpoint is not connected’.

我唯一注意到的是,在失败之前,我在Mongo上获得了很多联系:

insert  query update delete getmore command flushes mapped  vsize    res faults locked % idx miss %     qr|qw   ar|aw  netIn netout  conn       time 
     0    659      0      0       0       1       0   208m  1.28g    40m      0        0          0       0|0     0|0    62k   217k   486   03:57:20 

这里差不多有500个连接……但绝不仅限于此!

Mongo是2.0.3. PHP是5.3.x(最新的Debian安装……)

救命!

解决方法:

我真的需要看到mongod日志在这里确定,但两个最常见的原因包括做两件事:

>检查客户端和服务器上的ulimits(too many open file页是一个好的开始)
>从认值(再次客户端和服务器)降低tcp_keepalive_time

对于负载测试,您应该将ulimit设置(-n -u等)设置为超过20,000的任何值 – 这是MongoDB当前对于打开文件描述符的内部限制.您可能还希望确保您运行的Apache用户在ulimit设置方面同样正常,因为您使用的是PHP.

查看lsof的输出应该可以为您提供有关打开文件描述符来自何处的线索.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐