Измерьте использование памяти распределенного приложения

Как лучше всего измерить использование памяти распределенным приложением?

Я не уверен, если использовать ps На каждой машине лучший подход к этой проблеме — чем разумнее решение, тем лучше (:

П.С .: Приложение находится в c++и должен быть выполнен с использованием linux,

4

Решение

Установите один из нескольких действительно хороших инструментов мониторинга корпоративных ЦОД с открытым исходным кодом. Хорошие из них:

Они ужасно просты в установке и дают вам не только память, но и любые другие системные свойства, которые вы можете потрясти.

4

Другие решения

Чтобы программно использовать память, прочитайте /proc/self/statm:

#include <fstream>
#include <iostream>

int main()
{
std::ifstream statm("/proc/self/statm");
size_t mem_virt, mem_rss, mem_shared;
statm >> mem_virt >> mem_rss >> mem_shared;
std::cout << "Memory stats:" << std::endl <<
"Virtual memory size:  " << mem_virt   << std::endl <<
"Resident memory size: " << mem_rss    << std::endl <<
"Shared memory size:   " << mem_shared << std::endl;
return 0;
}

Я думаю, вы в основном заинтересованы в объем резидентной памяти, то есть сколько оперативной памяти доступно программе прямо сейчас. Увидеть ответ от ServerFault который описывает значение этих трех типов.

3

Я бы предложил реализовать простую логику в отдельном потоке вашего приложения. Это будет спать большую часть времени, просыпаться раз в пару минут, позвонить mallinfo и поместите эти данные в журнал или сеть.

1

Есть приложение для проверки памяти под названием alleyoop (которое использует lib valgrind), которое может контролировать программу. Я рекомендую проверить это: http://alleyoop.sourceforge.net/

0

Ты можешь использовать

cat /proc/PROC_PID/smaps

чтобы получить подробную информацию обо всех страницах памяти, используемых вашим процессом. Однако у вас нет указания, действительно ли память используется или просто зарезервирована. Существует также

pmap -x PROC_ID, doing similar work.

Наконец, есть

cat/proc/PROC_ID/status | grep Vm

предоставляя вам информацию обо всех типах памяти, используемых вашей программой.

0
По вопросам рекламы [email protected]