2013-01-23 101 views
1

我有一个大的数据集,只是足够的RAM来存储我的大部分数据(我有一些独特的访问模式)。我想看看我的数据库性能是否下降,因为我的工作集对于我的硬件来说太大了。哪个Linux工具可以用来监控MongoDB的性能?

我怎么会这样做呢?我可以使用哪些Linux工具。我目前在Ubuntu 11.04上使用Mongo 2.2。我应该看哪些指标?

更新:我想问一个更好的方法来问这个问题:“经验丰富的mongo管理员用什么工具来监控性能?

+0

您是否尝试先使用'top'? –

+0

http://www.10gen.com/products/mongodb-monitoring-service也请看看下面的问题的答案:http://stackoverflow.com/questions/14061833/mongodb-count-with-查询性能差 – cubbuk

+1

最好的最好的是彩信加上你可以通过它从10gen得到适当的支持,因为他们可以看到统计信息,我会去MMS,它是一个不需要的。与链接的答案不同,索引不需要适合内存,而是工作集。这是一个常见的误解 – Sammaye

回答

1

Mongostat应该为您提供大部分您正在寻找的信息,只要表现良好。要查看的关键指标是索引缺失,页面错误,锁定百分比以及读者和作者的队列长度。如果这些数字很高(大于零的任何数值,理想情况下,如果它们变化不大),那么你就有问题了。就工具而言,彩信足以开始,但个人而言,我发现自己每次需要查看性能时都会诉诸于mongostat。另外,查看日志,根据配置文件级别,您应该在那里看到缓慢的查询,这应该让您了解要优化哪些查询(或操作)。

0

我发现了一些Monitoring commands here。这可能是你在找什么? 至于你会用来跟踪问题的工具,这里是我如何做到这一点。

Nagios:我使用nagios作为集中监控系统来检查每台服务器的运行状况。它警告我,如果有些事情出错了。例如,我设置了一些警报,例如我对API的响应时间超出了阈值。

Monit:如果事情完全疯狂,monit会照顾它。假设我的堆栈的任何组件都关闭了。它警告我,并为我提出。

Logstash:记录在我的日志中的任何可疑活动,它让我知道。

SeaLion:现在,所有上述都让我知道我的堆栈是否有问题。但是是什么导致了这个问题,我使用SeaLion进行调试。我记录系统分析工具的输出,例如sar,top,uptime,iostat,vmstat,netstat等。除了这些命令,您还可以设置SeaLion所需的命令,并执行所有这些命令并以很好的时间线格式显示。另外安装和设置也非常简单。

0

iostat会告诉你你的磁盘子系统是如何处理负载的。我喜欢iostat -x -k 1以获得时间序列视图。