Shell 스 크 립 트 프로 그래 밍 - CPU 사용률 모니터링

    시스템 디자인 과 응용 프로 그래 밍 에서 성능 최적화 나 부하 문 제 를 검사 해 야 하 는데 보통 시스템 이나 프로 세 스 와 관련 된 CPU 사용률 입 니 다.CPU 사용률 은 시스템 의 부하 에 반응 할 수도 있 고 각 프로 세 스 의 구체 적 인 상황 에 반응 할 수도 있다.문제 나 디 버 깅 프로그램 을 발견 하기 위해 서 는 시스템 의 CPU 사용률 을 감시 할 필요 가 있다.Linux 시스템 에서 CPU 사용률 을 감시 하 는 도 구 는 vmstat, mpstat, ps, top 등 이 있다.
1.  CPU 사용률 모니터링 도구    CPU 사용률 의 주요 모니터링 도 구 는 vmstat mpstat (top + 1 유사) ps (top + P 유사) 입 니 다.    vmstat 도 구 는 시스템 의 CPU 사용률 을 대충 알 수 있 습 니 다.mpstat 도 구 는 각 핵의 CPU 사용률 을 표시 하거나 top 에 들 어간 후 숫자 1 을 누 르 면 각 핵의 CPU 사용률 을 표시 할 수 있 습 니 다.모든 프로 세 스 의 CPU 사용률 을 세분 화하 기 위해 top 이나 ps 도 구 를 사용 합 니 다.
2.  CPU 사용률 모니터링 예시    CPU 사용률 을 포함 하여 시스템 의 개황 을 1 초 간격 으로 표시 합 니 다. [nano:/home/luojianh] $vmstat 1 procs   -----------memory--------         --swap--  ---io---  --system--            -----cpu------   r  b   swpd   free   buff  cache           si   so   bi   bo      in     cs            us sy id wa st  8  1   0 2563344 467536 7745908    0    0     5   35      2      6               3  20 77  0 0  7  0   0 2564116 467576 7747912    0    0  2036  632  6620 437995   30  51 17  2 0  2  1   0 2589984 467632 7749200    0    0   408    0     3680 469111   24  58 17  2 0  8  0   0 2557996 467648 7750060    0    0   160    0     2187 480338   28  54 14  3 0
    모든 핵 을 표시 하 는 CPU 사용률: [nano:/home/luojianh] $mpstat - P ALL Linux 2.6.18 - 194.17.4. el5PAE (nano) 03/14/2012  _i686_ (16 CPU) 10:52:23 AM  CPU    %usr   %nice    %sys %iowait    %irq   %soft  %steal  %guest   %idle 10:52:24 AM  all    2.24    0.00    3.62    1.93    0.00    0.06    0.00    0.00   92.14 10:52:24 AM    0   29.00    0.00   12.00   31.00    0.00    0.00    0.00    0.00   28.00 10:52:24 AM    1    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00 10:52:24 AM    2    0.99    0.00    3.96    0.00    0.00    0.00    0.00    0.00   95.05 10:52:24 AM    3    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00 10:52:24 AM    4    0.00    0.00    4.04    0.00    0.00    0.00    0.00    0.00   95.96 10:52:24 AM    5    3.96    0.00    6.93    0.00    0.00    0.00    0.00    0.00   89.11 10:52:24 AM    6    1.00    0.00    7.00    0.00    0.00    0.00    0.00    0.00   92.00 10:52:24 AM    7    0.00    0.00    7.00    0.00    0.00    0.00    0.00    0.00   93.00 10:52:24 AM    8    0.00    0.00    3.00    0.00    0.00    0.00    0.00    0.00   97.00 10:52:24 AM    9    0.00    0.00    7.00    0.00    0.00    0.00    0.00    0.00   93.00 10:52:24 AM   10    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00 10:52:24 AM   11    0.99    0.00    2.97    0.00    0.00    0.00    0.00    0.00   96.04 10:52:24 AM   12    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00 10:52:24 AM   13    0.00    0.00    3.96    0.00    0.00    0.00    0.00    0.00   96.04 10:52:24 AM   14    0.00    0.00    0.00    0.00    0.00    0.00    0.00    0.00  100.00 10:52:24 AM   15    0.00    0.00    1.00    0.00    0.00    0.00    0.00    0.00   99.00
    상위 5 개 CPU 가 사용 하 는 프로 세 스 보이 기: $ps aux | sort - r - k 3 | head - 6  USER PID  %CPU %MEM  VSZ  RSS  TTY  STAT  START  TIME  COMMAND root  11691  1.6   0.5   17364  11m    ?      S    Mar11   64:01.01  pm_client root  10079  0.3   2.7    601m  67m    ?      S    Mar11   22:45.17  monitorAgent root  10722  0.3   0.5   19416  11m    ?      S    Mar11   13:37.11  sysmtc root   7392   0.3   0.1   31140 3044    ?      S    Mar11   0:01.18   solid root          1  0.0   0.0    2132    748    ?      S    Mar11   0:35.81   [init]     또는 top 을 이용 하여 CPU 점용 율 순위 의 특징 에 따라 앞 에 7 줄 의 정보 가 있다 고 가정 합 니 다: $top - d 1 - n 1 | head - 13 | tail - 6   11:46:11 up 3 days, 19:13, 1 user, load average: 1.72, 1.87, 1.80 176 processes: 174 sleeping, 2 running, 0 zombie, 0 stopped CPU states: cpu user nice system irq softirq iowait idle total 12.8% 0.0% 4.6% 0.2% 0.2% 18.7% 63.2% Mem: 2055244k av, 2032692k used, 22552k free, 0k shrd, 18256k buff 1216212k actv, 513216k in_d, 25520k in_c Swap: 4192956k av, 249844k used, 3943112k free 1218304k cached PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 14939 mysql 25 0 379M 224M 1117 R 38.2 25.7% 15:17.78 mysqld 4023  root  15 0 2120 972 784 R 2.0 0.3 0:00.06 top 1     root  15 0 2008 688 592 S 0.0 0.2 0:01.30 init 2     root  34 19   0   0   0 S 0.0 0.0 0:22.59 ksoftirqd/0 3     root  RT 0    0   0   0 S 0.0 0.0 0:00.00 watchdog/0
3.  CPU 사용률 모니터링 스 크 립 트    위의 명령 으로 시스템 의 상세 한 CPU 사용 상황 을 연속 으로 감시 합 니 다. 셸 스 크 립 트 는 다음 과 같 습 니 다.
LOG_FILE=/tmp/cpu_status.log
echo "CPU status of system and some processes" >> "${LOG_FILE}"
while true; do
    date >> "${LOG_FILE}"
    vmstat 1 1 >> "${LOG_FILE}"
    mpstat -P ALL 1 1 >> "${LOG_FILE}"
    ps aux | sort -r -k 3 | head -6 >> "${LOG_FILE}"
    sleep 10
done

좋은 웹페이지 즐겨찾기