大多數 Linux 管理員使用 SAR 報告監控系統性能,由於它會收集一週的性能數據。可是,你能夠經過更改 [neiqian]/etc/sysconfig/sysstat[/neiqian] 文件輕鬆地將其延長到四周。一樣,這段時間能夠延長一個月以上。若是超過 28,那麼日誌文件將放在多個目錄中,每個月一個。 |
要將覆蓋期延長至 28 天,請對/etc/sysconfig/sysstat 文件作如下更改。
編輯 sysstat 文件並將 HISTORY=7 更改成 HISTORY=28。
在本文中,咱們添加了三個 bash 腳本,它們能夠幫助你在一個地方輕鬆查看每一個數據文件的平均值。
咱們過去加過許多有用的 shell 腳本。若是你想查看它們,請進入下面的連接。html
如何使用 shell 腳本自動化平常操做linux
這些腳本簡單明瞭。出於測試目的,咱們僅包括兩個性能指標,即 CPU 和內存。你能夠修改腳本中的其餘性能指標以知足你的需求。shell
腳本 1:從 SAR 報告中獲取平均 CPU 利用率的 Bash 腳本bash
該 bash 腳本從每一個數據文件中收集 CPU 平均值並將其顯示在一個頁面上。
因爲是月末,它顯示了 2019 年 8 月的 28 天數據。性能
# vi /opt/scripts/sar-cpu-avg.sh #!/bin/sh echo "+----------------------------------------------------------------------------------+" echo "|Average: CPU %user %nice %system %iowait %steal %idle |" echo "+----------------------------------------------------------------------------------+" for file in `ls -tr /var/log/sa/sa* | grep -v sar` do dat=`sar -f $file | head -n 1 | awk '{print $4}'` echo -n $dat sar -f $file | grep -i Average | sed "s/Average://" done echo "+----------------------------------------------------------------------------------+"
運行腳本後,你將看到以下輸出。測試
# sh /opt/scripts/sar-cpu-avg.sh +----------------------------------------------------------------------------------+ |Average: CPU %user %nice %system %iowait %steal %idle | +----------------------------------------------------------------------------------+ 08/01/2019 all 0.70 0.00 1.19 0.00 0.00 98.10 08/02/2019 all 1.73 0.00 3.16 0.01 0.00 95.10 08/03/2019 all 1.73 0.00 3.16 0.01 0.00 95.11 08/04/2019 all 1.02 0.00 1.80 0.00 0.00 97.18 08/05/2019 all 0.68 0.00 1.08 0.01 0.00 98.24 08/06/2019 all 0.71 0.00 1.17 0.00 0.00 98.12 08/07/2019 all 1.79 0.00 3.17 0.01 0.00 95.03 08/08/2019 all 1.78 0.00 3.14 0.01 0.00 95.08 08/09/2019 all 1.07 0.00 1.82 0.00 0.00 97.10 08/10/2019 all 0.38 0.00 0.50 0.00 0.00 99.12 . . . 08/29/2019 all 1.50 0.00 2.33 0.00 0.00 96.17 08/30/2019 all 2.32 0.00 3.47 0.01 0.00 94.20 +----------------------------------------------------------------------------------+
腳本 2:從 SAR 報告中獲取平均內存利用率的 Bash 腳本日誌
該 bash 腳本從每一個數據文件中收集內存平均值並將其顯示在一個頁面上。
因爲是月末,它顯示了 2019 年 8 月的 28 天數據。htm
# vi /opt/scripts/sar-memory-avg.sh #!/bin/sh echo "+-------------------------------------------------------------------------------------------------------------------+" echo "|Average: kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty |" echo "+-------------------------------------------------------------------------------------------------------------------+" for file in `ls -tr /var/log/sa/sa* | grep -v sar` do dat=`sar -f $file | head -n 1 | awk '{print $4}'` echo -n $dat sar -r -f $file | grep -i Average | sed "s/Average://" done echo "+-------------------------------------------------------------------------------------------------------------------+"
運行腳本後,你將看到以下輸出。blog
# sh /opt/scripts/sar-memory-avg.sh +--------------------------------------------------------------------------------------------------------------------+ |Average: kbmemfree kbmemused %memused kbbuffers kbcached kbcommit %commit kbactive kbinact kbdirty | +--------------------------------------------------------------------------------------------------------------------+ 08/01/2019 1492331 2388461 61.55 29888 1152142 1560615 12.72 1693031 380472 6 08/02/2019 1493126 2387666 61.53 29888 1147811 1569624 12.79 1696387 373346 3 08/03/2019 1489582 2391210 61.62 29888 1147076 1581711 12.89 1701480 370325 3 08/04/2019 1490403 2390389 61.60 29888 1148206 1569671 12.79 1697654 373484 4 08/05/2019 1484506 2396286 61.75 29888 1152409 1563804 12.75 1702424 374628 4 08/06/2019 1473593 2407199 62.03 29888 1151137 1577491 12.86 1715426 371000 8 08/07/2019 1467150 2413642 62.19 29888 1155639 1596653 13.01 1716900 372574 13 08/08/2019 1451366 2429426 62.60 29888 1162253 1604672 13.08 1725931 376998 5 08/09/2019 1451191 2429601 62.61 29888 1158696 1582192 12.90 1728819 371025 4 08/10/2019 1450050 2430742 62.64 29888 1160916 1579888 12.88 1729975 370844 5 . . . 08/29/2019 1365699 2515093 64.81 29888 1198832 1593567 12.99 1781733 376157 15 08/30/2019 1361920 2518872 64.91 29888 1200785 1595105 13.00 1784556 375641 8 +-------------------------------------------------------------------------------------------------------------------+
腳本 3:從 SAR 報告中獲取 CPU 和內存平均利用率的 Bash 腳本ip
該 bash 腳本從每一個數據文件中收集 CPU 和內存平均值並將其顯示在一個頁面上。
該腳本與上面相比稍微不一樣。它在同一位置同時顯示二者(CPU 和內存)平均值,而不是其餘數據。
# vi /opt/scripts/sar-cpu-mem-avg.sh #!/bin/bash for file in `ls -tr /var/log/sa/sa* | grep -v sar` do sar -f $file | head -n 1 | awk '{print $4}' echo "-----------" sar -u -f $file | awk '/Average:/{printf("CPU Average: %.2f%\n"), 100 - $8}' sar -r -f $file | awk '/Average:/{printf("Memory Average: %.2f%\n"),(($3-$5-$6)/($2+$3)) * 100 }' printf "\n" done
運行腳本後,你將看到以下輸出。
# sh /opt/scripts/sar-cpu-mem-avg.sh 08/01/2019 ----------- CPU Average: 1.90% Memory Average: 31.09% 08/02/2019 ----------- CPU Average: 4.90% Memory Average: 31.18% 08/03/2019 ----------- CPU Average: 4.89% Memory Average: 31.29% 08/04/2019 ----------- CPU Average: 2.82% Memory Average: 31.24% 08/05/2019 ----------- CPU Average: 1.76% Memory Average: 31.28% . . . 08/29/2019 ----------- CPU Average: 3.83% Memory Average: 33.15% 08/30/2019 ----------- CPU Average: 5.80% Memory Average: 33.19%
via: https://www.2daygeek.com/linux-get-average-cpu-memory-utilization-from-sar-data-report/
做者:Magesh Maruthamuthu 選題:lujun9972 譯者:geekpi 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出