Назад | Перейти на главную страницу

Простой инструмент для построения графика использования памяти?

Есть ли сценарий, который будет отображать использование памяти в виде графика, например, в виде круговой диаграммы, где каждый процесс является отдельным срезом?

Я не ищу что-то вроде Мунин для построения графика использования памяти с течением времени, а для отображения использования памяти каждым процессом в определенный момент времени.

Чтобы сделать мой запрос еще более непонятным, он предназначен для безголового сервера (поэтому никаких приложений X). Самым простым способом было бы написать файл PNG или, возможно, файл HTML (который мог бы использовать Javascript, чтобы разрешить фильтрацию процессов, переключение между типами графиков и т. Д.)

Учет памяти для каждого процесса сложен по ряду причин, о которых я расскажу через минуту. Для простого мониторинга, вероятно, достаточно скриптов gkrellmd или nagios. Если вы хотите большей точности, вам нужно будет присмотреться.

смем вводит понятие Пропорциональный размер набора:

Поскольку большие части физической памяти обычно разделяются между несколькими приложениями, стандартный показатель использования памяти, известный как размер резидентного набора (RSS), значительно переоценивает использование памяти. Вместо этого PSS измеряет «справедливую долю» каждого приложения в каждой общей области, чтобы дать реалистичную оценку.

Пример: вы запускаете GNOME, в результате чего запускается несколько процессов, по одному для каждого апплета и программы. Все они ссылаются на libglib. Linux загружает libglib в один блок памяти и отображает его в каждый процесс, которому требуется libglib. Наивный учет памяти считает полный размер библиотеки libglib для каждого процесса, связанного с ней.

smem делит стоимость libglib между процессами, которые ее используют, чтобы получить более полное представление о реальности. Он также имеет ряд параметров для отображения использования памяти (с веб-сайта):

  1. Показать основную информацию о процессе smem
  2. Показать системное представление smem -R 4G -K / path / to / vmlinux -w
  3. Показать итоги и проценты smem -t -p
  4. Показать разные столбцы smem -c "имя пользователя pss"
  5. Показать процессы, отфильтрованные с помощью сопоставления smem -M libxml
  6. Показать сопоставления, отфильтрованные процессом smem -m -P [e] volution
  7. Чтение данных из tar-архива для захвата smem --source capture.tar.gz
  8. Показать столбчатую диаграмму с меткой pid smem --bar pid -c "pss uss"
  9. Показать круговую диаграмму RSS, помеченную именем smem --pie name -s rss

Однако вам понадобится самое последнее ядро ​​(> 2.6.27).

Не могу ничего придумать с полки

однако комбинация выполнения сценария PHP ps -AH v | awk '{вывести 8, 9, 10 долларов}' и используя это с pChart может дать вам веб-страницу, которая будет делать то, что вы ищете? (использование в килобайтах, процент от общего количества и название процесса)

Посмотри на sarface - это зависит от данных sar, и вы можете отслеживать использование памяти (и все другие данные sar / sysstat) в реальном времени.

и что насчет собирать ?

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

Если вам действительно нравятся более низкие уровни детализации, не забывайте коллекционировать. Вот пример типов использования памяти для каждого процесса, которые он может сообщить:

RECORD    1      cag-dl585-02     (1244758290.002) (Thu Jun 11 18:11:30 2009)

PROCESS SUMMARY (counters are /sec)
# PID  User     S VmSize  VmLck  VmRSS VmData  VmStk  VmExe  VmLib MajF MinF Command
 9089  root     S 66856K      0  2328K  1440K   212K   736K  6812K    0    0 sendmail:
 9097  smmsp    S 57600K      0  1772K  1304K   204K   736K  5904K    0    0 sendmail:
 9108  root     S  6428K      0   360K   180K    84K    88K  1944K    0    0 gpm
 9120  root     S 74808K      0  1136K   476K   520K    48K  1920K    0    0 crond
 9173  xfs      S 20904K      0  1828K  1124K    88K   104K  3084K    0    0 xfs

Если вас интересуют определенные процессы, вы можете указать соответствующие фильтры (включая переключатель для отображения потоков).

И если вас интересует память в целом, она также может отображать детали сляба и даже имеет вывод в формате vmstat. Зачем вам показывать данные в формате vmstat, если существующий инструмент уже это делает? Это просто - с помощью collectly вы можете записывать статистику в файл и воспроизводить ее позже в нескольких форматах.

попробуй, тебе понравится

  1. Grep процесс (ы).
  2. Разберите вывод и сохраните в текстовом файле в формате, разделенном запятыми.
  3. откройте файл, разделенный запятыми, в Excel.
  4. Нарисуйте график для этих данных с помощью графической утилиты Excel.

Если вам нужны снимки памяти с разным интервалом времени ... установите задание cron с желаемым интервалом и запустите скрипт.

надеюсь, это поможет....

это не совсем то, что вы ищете, но, возможно, вы сможете адаптировать его к своим потребностям, используя эта ссылка (ищите «Использование памяти процессами»).

Хм, гнуплот FAQ говорит это не поддерживает круговые диаграммы, но они предлагают Бернхарда Рейтера круговая диаграмма.

Вы можете использовать #top или #sysstat

Я не вдавался в подробности, но у collectl есть возможность генерировать вывод, разделенный разделителями, поэтому в случае gnuplot вы просто генерируете свои данные с пробелами в них, и все готово. Он даже отлично загрузится в Excel. Если вам нужны запятые, вы можете изменить разделитель, и если вы действительно хотите выполнить маршрут rrd (просто будьте осторожны, потому что графики не обязательно соответствуют данным!), Вы можете изменить разделитель на двоеточия и даже изменить метки времени на UTC. -отметка

kSar, основанный на данных sar, но на основе java, поэтому он более или менее независим от платформы и позволит вам использовать ssh для удаленного хоста для получения данных.

http://ksar.atomique.net/

Не phpsysinfo дать вам возможность каким-то образом увидеть информацию о процессе?