Mac 或 Linux 上的内存监控
Memory monitoring on Mac or Linux
是否有任何工具可以随着时间的推移监控应用程序内存并将其显示为图表?
例如,在Windows中有一个perfmon。我可以轻松配置我想要监控的进程和分辨率,并查看随时间变化的图表。
Mac 或 Linux 中是否有类似的内容?
谢谢。
一种方法是使用 gnuplot
和 bash
:
自己编写脚本
$ cat memory-plot.pg
#!/usr/bin/gnuplot
reset
set terminal dumb 120,40
set xdata time
set timefmt "%Y-%m-%dT%H:%M:%S"
set format x "%H:%M"
set xlabel "time"
set ylabel "RSS, KB"
set title "Process RSS over time."
set grid
set style data linespoints
plot "< tail -n 90 rss.txt" using 1:2 title "RSS"
$ pid=`pgrep Xorg`; clear; while sleep 1; do (printf "%(%Y-%m-%dT%H:%M:%S)T "; ps -ho rss,cmd -p $pid) >> rss.txt; printf "3[0;0H"; gnuplot memory-plot.pg; done
在终端中输出实时图表:
Process RSS over time.
105500 +-+--+-----+----+----+-----+----+----+-----+----+-----+----+----+-----+----+----+-----+----+----+-----+--+-+
+ + + + + + + + + + +
| :A : : : : : : : RSS +--A--+ |
| :| : : : : : : : : |
| :| A : -A A : : : : : : : |
105000 +-+.........|......|..A.|....A|..........................................................................+-+
| :| | :| | || : : : : : : : |
| :| ||| | || : AA : : : : : : |
| :| ||| | || : || : : : : : : |
104500 +-+.........|.....|.|...|....||....A..|..................................................................+-+
| :|| | A: | || : | | : : : : : : |
| :|| | : | | | : | | : : : : : : |
| :|| | : | | | : | A : : : : : : |
| :|| A : | | | : | | : : : : : : |
104000 +-+.........||.AAA.......|..|..|...|...|.................................................................+-+
| :||A : | | |: | | : : : : : : |
| :||| : | AA |: | | : : : : : : |
| | | : |A |: | | : : : : : : |
| | A : || |: | | : : : : : : |
103500 +-+........|.............||....|..|.....|................................................................+-+
| | : || |: A |AAAAAAAAAAAA-AAAAAAAAAAAA-AA-AAAAAAAAAAAAAA-AAAAAAAAAAAAA |
| | : | |: | || : : : : : : |
| | : | |:| A : : : : : : |
| | : A AAA : : : : : : |
103000 +-+........|.............................................................................................+-+
| | : : : : : : : : |
| | : : : : : : : : |
| | : : : : : : : : |
102500 +-+........|.............................................................................................+-+
| | : : : : : : : : |
| | : : : : : : : : |
AAAAAAAA-AAA : : : : : : : : |
+ + + + + + + + + + +
102000 +-+--+-----+----+----+-----+----+----+-----+----+-----+----+----+-----+----+----+-----+----+----+-----+--+-+
11:49 11:49 11:49 11:49 11:49 11:49 11:50 11:50 11:50 11:50 11:50
是否有任何工具可以随着时间的推移监控应用程序内存并将其显示为图表?
例如,在Windows中有一个perfmon。我可以轻松配置我想要监控的进程和分辨率,并查看随时间变化的图表。
Mac 或 Linux 中是否有类似的内容?
谢谢。
一种方法是使用 gnuplot
和 bash
:
$ cat memory-plot.pg
#!/usr/bin/gnuplot
reset
set terminal dumb 120,40
set xdata time
set timefmt "%Y-%m-%dT%H:%M:%S"
set format x "%H:%M"
set xlabel "time"
set ylabel "RSS, KB"
set title "Process RSS over time."
set grid
set style data linespoints
plot "< tail -n 90 rss.txt" using 1:2 title "RSS"
$ pid=`pgrep Xorg`; clear; while sleep 1; do (printf "%(%Y-%m-%dT%H:%M:%S)T "; ps -ho rss,cmd -p $pid) >> rss.txt; printf "3[0;0H"; gnuplot memory-plot.pg; done
在终端中输出实时图表:
Process RSS over time.
105500 +-+--+-----+----+----+-----+----+----+-----+----+-----+----+----+-----+----+----+-----+----+----+-----+--+-+
+ + + + + + + + + + +
| :A : : : : : : : RSS +--A--+ |
| :| : : : : : : : : |
| :| A : -A A : : : : : : : |
105000 +-+.........|......|..A.|....A|..........................................................................+-+
| :| | :| | || : : : : : : : |
| :| ||| | || : AA : : : : : : |
| :| ||| | || : || : : : : : : |
104500 +-+.........|.....|.|...|....||....A..|..................................................................+-+
| :|| | A: | || : | | : : : : : : |
| :|| | : | | | : | | : : : : : : |
| :|| | : | | | : | A : : : : : : |
| :|| A : | | | : | | : : : : : : |
104000 +-+.........||.AAA.......|..|..|...|...|.................................................................+-+
| :||A : | | |: | | : : : : : : |
| :||| : | AA |: | | : : : : : : |
| | | : |A |: | | : : : : : : |
| | A : || |: | | : : : : : : |
103500 +-+........|.............||....|..|.....|................................................................+-+
| | : || |: A |AAAAAAAAAAAA-AAAAAAAAAAAA-AA-AAAAAAAAAAAAAA-AAAAAAAAAAAAA |
| | : | |: | || : : : : : : |
| | : | |:| A : : : : : : |
| | : A AAA : : : : : : |
103000 +-+........|.............................................................................................+-+
| | : : : : : : : : |
| | : : : : : : : : |
| | : : : : : : : : |
102500 +-+........|.............................................................................................+-+
| | : : : : : : : : |
| | : : : : : : : : |
AAAAAAAA-AAA : : : : : : : : |
+ + + + + + + + + + +
102000 +-+--+-----+----+----+-----+----+----+-----+----+-----+----+----+-----+----+----+-----+----+----+-----+--+-+
11:49 11:49 11:49 11:49 11:49 11:49 11:50 11:50 11:50 11:50 11:50