我有一个 768MB RAM 的 VPS 系统。有什么方法可以找出
- 我通常使用的平均 RAM 量是多少
- 哪些进程通常使用高 RAM 和 CPU
这样我就能知道是否需要升级它?
答案1
只是 RAM?不是交换?我对此做了一些肮脏的脚本工作:
首先,我们需要解析ps aux
输出以获取内存、命令和 CPU,这些都在 perl 脚本中完成:
@dados = `ps aux`;
for $i ( 0 .. $#dados ) {
@l = split('\s+', $dados[$i]);
$j = join(',',@l[1..9]);
print "$j,@l[ 10 .. $#l]\n";
}
输出将是一个逗号分隔的值,它将如何被解释脚本:
efile <- commandArgs(TRUE)
dados <- read.csv(efile[1])
mem<-sum(dados[3])
dados <- dados[order(dados[3],dados[4],decreasing=T),]
sprintf("%f %s",mem,dados[1, 'COMMAND'])
该脚本巧妙地获取了 MEM 以及哪个命令使用了更多的 MEM|CPU。
在我的定时任务条目我有以下行。
* * * * * perl $HOME/processstats.pl > $HOME/process.csv && Rscript --vanilla $HOME/mstats.R $HOME/process.csv >> $HOME/sysmemcpu.log
如果需要的话,你可以用 R 制作图形:
如果我使用非标准工具进行统计,请见谅。