Mam system VPS z 768 MB pamięci RAM. Czy jest jakiś sposób, aby się dowiedzieć
- jaka jest średnia ilość pamięci RAM, której zwykle używam
- które procesy zwykle używają dużej pamięci RAM i procesora
aby zobaczyć, czy muszę go zaktualizować, czy nie?
Po prostu RAM? Nie zamieniasz? Zrobiłem z tego brudną robotę skryptową:
Najpierw musimy przeanalizować ps aux
dane wyjściowe, aby uzyskać mem, polecenie i procesor, to jest zrobione w tym skrypcie perl:
@dados = `ps aux`;
for $i ( 0 .. $#dados ) {
@l = split('\s+', $dados[$i]);
$j = join(',',@l[1..9]);
print "$j,@l[ 10 .. $#l]\n";
}
Dane wyjściowe będą wartościami oddzielonymi przecinkami, w jaki sposób będą interpretowane przez skrypt Rscript :
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'])
Ten skrypt robi problem z uzyskaniem MEM i jakie polecenie używa więcej MEM | CPU.
W moim wpisie crontab mam następujący wiersz.
* * * * * perl $HOME/processstats.pl > $HOME/process.csv && Rscript --vanilla $HOME/mstats.R $HOME/process.csv >> $HOME/sysmemcpu.log
Za pomocą R możesz w razie potrzeby wykonać grafikę:
Przepraszam, jeśli użyłem niestandardowego narzędzia do tworzenia statystyk.