我在MongoDB上设置了一个数据库,我想计算各种查询的CPU和RAM使用情况。
我试图使用psutil库来执行此操作。这是一个这样的例子:
process = psutil.Process(44083) # Got the pid of mongod running by ps aux | grep mongod
mem_usage = process.memory_info()[0]
cpu_usage = process.cpu_percent()
print mem_usage, cpu_usage
cursor = db.production.find({'key':value})
mem_usage = process.memory_info()[0]
cpu_usage = process.cpu_percent()
print mem_usage, cpu_usage
这是获得所需指标的正确方法吗?
答案 0 :(得分:0)
我建议您使用Datadog,ServerDensity,NewRelic等免费工具之一。他们有免费的计划,并且能够收集mongo统计数据。
但是,当你无法控制CPU和内存时,为什么需要测量它?
我宁愿专注于构建适当的架构和索引,然后测量它们的用法,cpu和ram只是somethings going on
的指标。另一方面,Mongo统计数据可以告诉你what
正在进行中。
以下是Mongo文档中的一些有用链接: https://docs.mongodb.com/manual/administration/monitoring/ https://docs.mongodb.com/manual/reference/command/serverStatus/