2016-08-09 7 views
0

У меня есть база данных, настроенная на MongoDB, и я хочу рассчитать использование процессора и ОЗУ для различных запросов.Измерение использования ЦП/ОЗУ при запросе в MongoDB

Я пытаюсь использовать библиотеку 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

Я думаю, вы должны попробовать использовать инструмент мониторинга Монго для этого. Вы сможете увидеть статистику в реальном времени во время выполнения запросов. – umair

ответ

0

Я рекомендую вам использовать один из бесплатных инструментов, таких как Datadog, ServerDensity, NewRelic. У них есть бесплатные планы и они также могут собирать статистику монго.

Но зачем вам измерять использование ЦП и памяти, если у вас нет контроля над этим?

Я бы предпочел сосредоточиться на построении правильной схемы и индексов, а затем измерить их использование, CPU и RAM - только индикаторы, которые somethings going on. Статистика Mongo, с другой стороны, может сообщить вам what.

Вот некоторые полезные ссылки из Монго документации: https://docs.mongodb.com/manual/administration/monitoring/ https://docs.mongodb.com/manual/reference/command/serverStatus/

+0

Я посмотрю бесплатные инструменты. Я сравнивал использование процессора и бара Mongo с Oracle, вот почему. –

+0

Я не думаю, что это сопоставимо. Моя попытка сделать это будет бенчмаркинг, размер данных, размер индекса и время ответа на запрос. Просто взгляните на сравнение между различными базами данных, все они сравнивают показатели, такие как инертные в секунду, а не используемые ЦП. – spinache

 Смежные вопросы

  • Нет связанных вопросов^_^