![有没有什么方法可以查明我的 VPS 平均使用了多少 RAM?](https://linux22.com/image/1278409/%E6%9C%89%E6%B2%A1%E6%9C%89%E4%BB%80%E4%B9%88%E6%96%B9%E6%B3%95%E5%8F%AF%E4%BB%A5%E6%9F%A5%E6%98%8E%E6%88%91%E7%9A%84%20VPS%20%E5%B9%B3%E5%9D%87%E4%BD%BF%E7%94%A8%E4%BA%86%E5%A4%9A%E5%B0%91%20RAM%EF%BC%9F.png)
我有一个 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 制作图形:
如果我使用非标准工具进行统计,请见谅。