QUOTE: |
[sailorhzr@builder ~]$ cat /proc/stat cpu 432661 13295 86656 422145968 171474 233 5346 cpu0 123075 2462 23494 105543694 16586 0 4615 cpu1 111917 4124 23858 105503820 69697 123 371 cpu2 103164 3554 21530 105521167 64032 106 334 cpu3 94504 3153 17772 105577285 21158 4 24 intr 1065711094 1057275779 92 0 6 6 0 4 0 3527 0 0 0 70 0 20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7376958 0 0 0 0 0 0 0 1054602 0 0 0 0 0 0 0 30 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 ctxt 19067887 btime 1139187531 processes 270014 procs_running 1 procs_blocked 0 |
QUOTE: |
cpu usage=(idle2-idle1)/(cpu2-cpu1)*100 cpu usage=[(user_2 +sys_2+nice_2) - (user_1 + sys_1+nice_1)]/(total_2 - total_1)*100 |
QUOTE: |
total_0USER[0]+NICE[0]+SYSTEM[0]+IDLE[0]+IOWAIT[0]+IRQ[0]+SOFTIRQ[0] total_1=USER[1]+NICE[1]+SYSTEM[1]+IDLE[1]+IOWAIT[1]+IRQ[1]+SOFTIRQ[1] cpu usage=(IDLE[0]-IDLE[1]) / (total_0-total_1) * 100 |
CODE: #!/bin/sh ##echo user nice system idle iowait irq softirq CPULOG_1=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}') SYS_IDLE_1=$(echo $CPULOG_1 | awk '{print $4}') Total_1=$(echo $CPULOG_1 | awk '{print $1+$2+$3+$4+$5+$6+$7}') sleep 5 CPULOG_2=$(cat /proc/stat | grep 'cpu ' | awk '{print $2" "$3" "$4" "$5" "$6" "$7" "$8}') SYS_IDLE_2=$(echo $CPULOG_2 | awk '{print $4}') Total_2=$(echo $CPULOG_2 | awk '{print $1+$2+$3+$4+$5+$6+$7}') SYS_IDLE=`expr $SYS_IDLE_2 - $SYS_IDLE_1` Total=`expr $Total_2 - $Total_1` SYS_USAGE=`expr $SYS_IDLE/$Total*100 |bc -l` SYS_Rate=`expr 100-$SYS_USAGE |bc -l` Disp_SYS_Rate=`expr "scale=3; $SYS_Rate/1" |bc` echo $Disp_SYS_Rate% ###perl 代碼(網友提供.可用) #!/usr/bin/perl use warnings; $SLEEPTIME=5; if (-e "/tmp/stat") { unlink "/tmp/stat"; } open (JIFF_TMP, ">>/tmp/stat") || die "Can't open /proc/stat file!\n"; open (JIFF, "/proc/stat") || die "Can't open /proc/stat file!\n"; @jiff_0=<JIFF>; print JIFF_TMP $jiff_0[0] ; close (JIFF); sleep $SLEEPTIME; open (JIFF, "/proc/stat") || die "Can't open /proc/stat file!\n"; @jiff_1=<JIFF>; print JIFF_TMP $jiff_1[0]; close (JIFF); close (JIFF_TMP); @USER=`awk '{print \$2}' "/tmp/stat"`; @NICE=`awk '{print \$3}' "/tmp/stat"`; @SYSTEM=`awk '{print \$4}' "/tmp/stat"`; @IDLE=`awk '{print \$5}' "/tmp/stat"`; @IOWAIT=`awk '{print \$6}' "/tmp/stat"`; @IRQ=`awk '{print \$7}' "/tmp/stat"`; @SOFTIRQ=`awk '{print \$8}' "/tmp/stat"`; $JIFF_0=$USER[0]+$NICE[0]+$SYSTEM[0]+$IDLE[0]+$IOWAIT[0]+$IRQ[0]+$SOFTIRQ[0]; $JIFF_1=$USER[1]+$NICE[1]+$SYSTEM[1]+$IDLE[1]+$IOWAIT[1]+$IRQ[1]+$SOFTIRQ[1]; $SYS_IDLE=($IDLE[0]-$IDLE[1]) / ($JIFF_0-$JIFF_1) * 100; $SYS_USAGE=100 - $SYS_IDLE; printf ("The CPU usage is %1.2f%%\n",$SYS_USAGE); |
[火星人 ] linux下/proc/stat 計算CPU利用率已經有3141次圍觀