script 紀錄資源 - Linux

By Isla
at 2010-11-22T18:30
at 2010-11-22T18:30
Table of Contents
※ 引述《paulyanzi (消失)》之銘言:
: 請問要怎麼利用 script 去記錄某支程式每一秒吃的資源呢?
: 例如去記錄吃的 CPU, MEM, (不知道還有什麼可以記錄來比較?)
: 謝謝
這是以前用 perl 寫的紀錄CPU使用率的腳本, 資訊是從 /proc 取得的
#!/usr/bin/env perl
# utilities for CPU Usage, written by coldnew
use strict;
use warnings;
my $IDLE_PREV = 0;
my $TOTAL_PREV = 0;
while (1) {
open(STAT, "</proc/stat");
my @CPU = split(/\s+/, <STAT>);
close(STAT);
shift(@CPU); # remove first element
my $IDLE = $CPU[3]; # get idle CPU time
# Calculate total CPU time
my $TOTAL = 0;
foreach my $i (@CPU) {
$TOTAL += $i;
}
$IDLE -= $IDLE_PREV;
$TOTAL -= $TOTAL_PREV;
my $CPU_USAGE = 100 * ($TOTAL-$IDLE) / $TOTAL ;
printf "CPU:%4.2f%% \n", $CPU_USAGE;
$IDLE_PREV = $IDLE;
$TOTAL_PREV = $TOTAL;
sleep 2;
}
--
: 請問要怎麼利用 script 去記錄某支程式每一秒吃的資源呢?
: 例如去記錄吃的 CPU, MEM, (不知道還有什麼可以記錄來比較?)
: 謝謝
這是以前用 perl 寫的紀錄CPU使用率的腳本, 資訊是從 /proc 取得的
#!/usr/bin/env perl
# utilities for CPU Usage, written by coldnew
use strict;
use warnings;
my $IDLE_PREV = 0;
my $TOTAL_PREV = 0;
while (1) {
open(STAT, "</proc/stat");
my @CPU = split(/\s+/, <STAT>);
close(STAT);
shift(@CPU); # remove first element
my $IDLE = $CPU[3]; # get idle CPU time
# Calculate total CPU time
my $TOTAL = 0;
foreach my $i (@CPU) {
$TOTAL += $i;
}
$IDLE -= $IDLE_PREV;
$TOTAL -= $TOTAL_PREV;
my $CPU_USAGE = 100 * ($TOTAL-$IDLE) / $TOTAL ;
printf "CPU:%4.2f%% \n", $CPU_USAGE;
$IDLE_PREV = $IDLE;
$TOTAL_PREV = $TOTAL;
sleep 2;
}
--
Tags:
Linux
All Comments
Related Posts
如何讓 Squid 緩存這個網站?

By Bennie
at 2010-11-22T12:12
at 2010-11-22T12:12
linux可支援ssl的vsftpd或pure的rpm套件

By Una
at 2010-11-22T11:48
at 2010-11-22T11:48
不是 RPM 系統要使用 rpmbuild?

By Ophelia
at 2010-11-22T09:23
at 2010-11-22T09:23
請問要怎麼看裝置的位置

By Skylar Davis
at 2010-11-21T22:44
at 2010-11-21T22:44
Ubuntu10.04小黑x201i無線網路

By Elvira
at 2010-11-21T22:15
at 2010-11-21T22:15