在VPS上可怕的MongoCursor :: getNext性能

时间:2012-04-14 13:59:19

标签: php performance mongodb

我试图弄清楚为什么托管在具有2GB RAM的VPS上的网站开始在~2秒内显示页面,而在本地主机上它最多只需要大约200毫秒。我想要注意的是,IIRC,过去没有发生过,并且负载或访客数量没有差异。 Top大部分时间显示0%CPU使用率,77M RAM可用,4M交换使用。

我描述了一个缓慢的请求,发现有87%的时间用于调用MongoCursor::getNext。使用过的DB的mongodump是800MB,因此内存应该不是问题。操作系统是64位Ubuntu 11。

我可以采取哪些措施来解决此问题?

1 个答案:

答案 0 :(得分:1)

原来是由老mongo版本引起的 - 在VPS上它是1.8。*并且在我的本地盒子上 - 2.0.4。在我升级了mongo和mongorestore之后,我必须运行数据db.repairDatabase(),因为有些数据并未通过error: { "$err" : "assertion db/key.cpp:409" }获取。现在一切都恢复正常了。