Есть ли сценарий, который будет отображать использование памяти в виде графика, например, в виде круговой диаграммы, где каждый процесс является отдельным срезом?
Я не ищу что-то вроде Мунин для построения графика использования памяти с течением времени, а для отображения использования памяти каждым процессом в определенный момент времени.
Чтобы сделать мой запрос еще более непонятным, он предназначен для безголового сервера (поэтому никаких приложений X). Самым простым способом было бы написать файл PNG или, возможно, файл HTML (который мог бы использовать Javascript, чтобы разрешить фильтрацию процессов, переключение между типами графиков и т. Д.)
Учет памяти для каждого процесса сложен по ряду причин, о которых я расскажу через минуту. Для простого мониторинга, вероятно, достаточно скриптов gkrellmd или nagios. Если вы хотите большей точности, вам нужно будет присмотреться.
смем вводит понятие Пропорциональный размер набора:
Поскольку большие части физической памяти обычно разделяются между несколькими приложениями, стандартный показатель использования памяти, известный как размер резидентного набора (RSS), значительно переоценивает использование памяти. Вместо этого PSS измеряет «справедливую долю» каждого приложения в каждой общей области, чтобы дать реалистичную оценку.
Пример: вы запускаете GNOME, в результате чего запускается несколько процессов, по одному для каждого апплета и программы. Все они ссылаются на libglib. Linux загружает libglib в один блок памяти и отображает его в каждый процесс, которому требуется libglib. Наивный учет памяти считает полный размер библиотеки libglib для каждого процесса, связанного с ней.
smem делит стоимость libglib между процессами, которые ее используют, чтобы получить более полное представление о реальности. Он также имеет ряд параметров для отображения использования памяти (с веб-сайта):
Однако вам понадобится самое последнее ядро (> 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 вы можете записывать статистику в файл и воспроизводить ее позже в нескольких форматах.
попробуй, тебе понравится
Если вам нужны снимки памяти с разным интервалом времени ... установите задание cron с желаемым интервалом и запустите скрипт.
надеюсь, это поможет....
это не совсем то, что вы ищете, но, возможно, вы сможете адаптировать его к своим потребностям, используя эта ссылка (ищите «Использование памяти процессами»).
Хм, гнуплот FAQ говорит это не поддерживает круговые диаграммы, но они предлагают Бернхарда Рейтера круговая диаграмма.
Вы можете использовать #top или #sysstat
Я не вдавался в подробности, но у collectl есть возможность генерировать вывод, разделенный разделителями, поэтому в случае gnuplot вы просто генерируете свои данные с пробелами в них, и все готово. Он даже отлично загрузится в Excel. Если вам нужны запятые, вы можете изменить разделитель, и если вы действительно хотите выполнить маршрут rrd (просто будьте осторожны, потому что графики не обязательно соответствуют данным!), Вы можете изменить разделитель на двоеточия и даже изменить метки времени на UTC. -отметка
kSar, основанный на данных sar, но на основе java, поэтому он более или менее независим от платформы и позволит вам использовать ssh для удаленного хоста для получения данных.
Не phpsysinfo дать вам возможность каким-то образом увидеть информацию о процессе?