日期:2014-05-16  浏览次数:20503 次

[转]MongoDB常见问题处理

说明: 这里的问题是我在看MongoDB官网文章时,从里面总结出来的。

mongod process "disappeared"

? ? ? ? ? ?这个说的是mongodb进行消失,可以理解为死掉等。可以从下面中找问题在
? ? ? ? ? ? ? ?#grep mongod /var/log/messages

? ? ? ? ? ? ? ?#grep score /var/log/messages

Socket errors in sharded clusters and replica sets

? ? ? ???echo 300 > /proc/sys/net/ipv4/tcp_keepalive_time 默认是7200

关于tomm many open files:

?????????? First:检查以下几项:

????????? lsof | grep mongod

????????? lsof | grep mongod | grep TCP

????????? lsof | grep mongod | grep data | wc

?????? 可以用:ulimit解决: ulimit -n X

?

High TCP Connection Count

TCP Connection过大时,可以检查是不是client apps使用连接池问题

Mongod (hard) connection limit

??????????? 这个连接数限制在20000,可以手动调整大小

Data files count with very large databases

??????????? 数据在T级以上时,确定是否做了限制(手动增加),再用repairdatabase时,会同时有2 copies

No space left on device

??????????? 这个时候reads仍然在进行,要做的是first shutdown servers, then to delete some????? data and compact

???? Checking Siez of a collection(检查集合)

????????????? >db.(collectionname).validate();

?

NUMA

? ? ? ?Linu,Numa and MongoDB不能很好的一起工作。如果机器在numa硬件运行的时候,需要把它关闭。一般出现大规模性能慢下来或一段时间cpu占用很高的system time 。可以从日志中抓取NUMA字。(我也翻译不出这个NUMA是什么意思)

关闭的方法:一:在启动mongoDB的时候:

??????????????????? numactl --interleave=all ${MONGODB_HOME}/bin/mongod --config conf/mongodb.conf

?????????????????? 二:在不关闭mongoDB时:

?????????????????? echo 0 > /proc/sy