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的输出应该可以为您提供有关打开文件描述符来自何处的线索.

相关文章

MongoTemplate 是Spring Data MongoDB 中的一个核心类,为 S...
笔者今天要分享的是一个项目重构过程中如何将数据库选型由原...
mongodb/mongoTemplate.upsert批量插入更新数据的实现
进入官网下载官网安装点击next勾选同意,点击next点击custom...
头歌 MongoDB实验——数据库基本操作
期末考试复习总结