我已经在亚马逊EC2上安装了Ubuntu64位操作系统和1.6GBRAM的MongoDB 2.4.4。
在此服务器上,只有MongoDB不运行其他任何内容。
但有时CPU的使用率达到99%,平均负载为500.01,400.73,620.77。
我还在服务器上安装了MMS,以监视服务器上发生的事情。
这是MMS的详细信息
根据MMS的详细信息,索引对每个查询都非常有效。 可疑详情如下 1)高非映射虚拟内存 2)高页故障
有人能帮助我理解是什么导致了高CPU的使用吗?
编辑:
在评论了@Dylan之后,我减少了活动内容,但是仍然有很高的非映射虚拟内存。
发布于 2013-08-04 03:26:52
下面是一些需要研究的事情的总结:
1.观察到大量连接和游标(13k): - fix:确保您的连接池是合适的。对于报告和当前的请求率,最多只需要几个连接。另外,我猜您有一个m1small实例,这意味着您只有一个核心。
2.检查查询和索引:-使用explain()运行查询,以观察查询是如何执行的。正确的模型通常只导致查询,只提取很少的文档和使用索引。
3.内存(紧凑和readahead设置):--充分利用内存。1.6GB是低的。检查您有多少空闲内存,并将其与报告的驻留内存进行比较。驻留内存不足的几个常见原因是碎片。如果有大量文档移动、更改大小等,则应该运行Compact命令来对数据文件进行碎片整理。此外,不好的readahead也会导致内存的不良使用。检查readahead设置(http://manpages.ubuntu.com/manpages/lucid/man2/readahead.2.html)。尝试一些以低值开始的值(http://docs.mongodb.org/manual/administration/production-notes/)。生产注释推荐32 (对于标准512字节块)。有时,如果文档更大,则更高的值是最佳的。希望驻留内存应该接近可用内存,并且页面错误应该开始降低。
如果您在这之后最充分地使用资源,并且仍然被限制在CPU上,那么这意味着您需要增加资源。
https://stackoverflow.com/questions/18029733
复制相似问题