您好,登錄后才能下訂單哦!
如何理解System Activity Report,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
sar 命令行的常用格式:
sar [options] [-A] [-o file] t [n]
在命令行中,n 和t 兩個參數組合起來定義采樣間隔和次數,t為采樣間隔,是必須有的參數,n為采樣次數,是可選的,默認值是1,-o file表示將命令結果以二進制格式存放在文件中,
file 在此處不是關鍵字,是文件名。options 為命令行選項,sar命令的選項很多,下面只列出常用選項:
-A:所有報告的總和。
-u:CPU利用率
-v:進程、I節點、文件和鎖表狀態。
-d:硬盤使用報告。
-r:沒有使用的內存頁面和硬盤塊。
-g:串口I/O的情況。
-b:緩沖區使用情況。
-a:文件讀寫情況。
-c:系統調用情況。
-R:進程的活動情況。
-y:終端設備活動情況。
-w:系統交換活動。
-n: 記錄網絡使用情況
默認監控: sar 5 5 // CPU和IOWAIT統計狀態
(1) sar -b 5 5 // IO傳送速率
(2) sar -B 5 5 // 頁交換速率
(3) sar -c 5 5 // 進程創建的速率
(4) sar -d 5 5 // 塊設備的活躍信息
(5) sar -n DEV 5 5 // 網路設備的狀態信息
(6) sar -n SOCK 5 5 // SOCK的使用情況
(7) sar -n ALL 5 5 // 所有的網絡狀態信息
(8) sar -P ALL 5 5 // 每顆CPU的使用狀態信息和IOWAIT統計狀態
(9) sar -q 5 5 // 隊列的長度(等待運行的進程數)和負載的狀態
(10) sar -r 5 5 // 內存和swap空間使用情況
(11) sar -R 5 5 // 內存的統計信息(內存頁的分配和釋放、系統每秒作為BUFFER使用內存頁、每秒被cache到的內存頁)
(12) sar -u 5 5 // CPU的使用情況和IOWAIT信息(同默認監控)
(13) sar -v 5 5 // inode, file and other kernel tablesd的狀態信息
(14) sar -w 5 5 // 每秒上下文交換的數目
(15) sar -W 5 5 // SWAP交換的統計信息(監控狀態同iostat 的si so)
(16) sar -x 2906 5 5 // 顯示指定進程(2906)的統計信息,信息包括:進程造成的錯誤、用戶級和系統級用戶CPU的占用情況、運行在哪顆CPU上
(17) sar -y 5 5 // TTY設備的活動狀態
(18) 將輸出到文件(-o)和讀取記錄信息(-f)
CPU CPU 標識符;“all”表示所有 CPU
%user 用戶進程使用的 CPU 百分比。Oracle 進程屬于這一類。
%nice 在 nice 優先級下執行的 CPU 利用率百分比
%system 執行系統進程的 CPU 百分比
%iowait 等待進行 I/O 操作的 CPU 百分比
%idle 等待工作的 CPU 空閑百分比
sar 依托于 sysstat 包
[root@testdb ~]# rpm -qa|grep sysstat
sysstat-7.0.2-11.el5
如果沒有安裝可以使用 yum install sysstat 進行安裝
啟動sysstat
/etc/init.d/sysstat start
設置sysstat自啟動
checkfig sysstat on
1.手工編寫腳本使用sar命令監控系統
1.1 抽取昨日的sar 文件,比較麻煩.
1.2 每天23:59:59 抽取當天的 sar 信息到文件, oracle 數據中采用外部表進行訪問
1.21 定義腳本
#!/bin/bash
sar | awk '/:01/{print $1,$2,$3,$4,$5,$6,$7,$8,$9}' >>/tmp/sarlog.txt
上面是腳本代碼,定義在 crontab 中.
12:10:01 AM all 0.05 0.00 0.02 0.08 0.00 99.86
以上面一行為例,都是 :01 分運行的,所以我根據這個條件來獲取每一行
1.22 創建外部表
SQL> create or replace directory sardump as '/tmp';
Directory created.
CREATE TABLE EXTER_SAR
(
vdate VARCHAR(12),
vapm VARCHAR(12),
vcpu VARCHAR(12),
vuser VARCHAR(12),
vnice VARCHAR(12),
vsystem VARCHAR(12),
viowait VARCHAR(12),
vsteal VARCHAR(12),
vidle VARCHAR(12)
) ORGANIZATION EXTERNAL
(
type oracle_loader
default directory sardump
access parameters
(
records delimited by newline
fields terminated by ' '
)
location ('sarlog.txt')
);
1.23 進行一次驗證
SQL> select * from EXTER_SAR;
VDATE VAPM VCPU VUSER VNICE VSYSTEM VIOWAIT VSTEAL VIDLE
------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------ ------------
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 0.05 0.00 0.02 0.08 0.00 99.86
大概實現了目的
2.系統自動定時監控
2.1 修改運行時間
默認為10分鐘監控一次
[root@testdb ~]# cat /etc/cron.d/sysstat
# run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
可以將 */10 進行修改
2.2 修改保存時間
sar 系統定時監控默認保存 7 天,保存路徑為 /var/log/sa
[root@testdb ~]# cat /usr/lib64/sa/sa2
#!/bin/sh
# /usr/lib64/sa/sa2.sh
# (C) 1999-2006 Sebastien Godard (sysstat wanadoo.fr)
#
# Changes:
# - 2004-01-22 Nils Philippsen
# make history configurable
#
HISTORY=7
[ -r /etc/sysconfig/sysstat ] && . /etc/sysconfig/sysstat
[ ${HISTORY} -gt 25 ] && HISTORY=25
S_TIME_FORMAT=ISO ; export S_TIME_FORMAT
umask 0022
DATE=`date +%d`
RPT=/var/log/sa/sar${DATE}
ENDIR=/usr/bin
DFILE=/var/log/sa/sa${DATE}
[ -f "$DFILE" ] || exit 0
cd ${ENDIR}
${ENDIR}/sar $* -f ${DFILE} > ${RPT}
find /var/log/sa \( -name 'sar??' -o -name 'sa??' \) -mtime +"${HISTORY}" -exec rm -f {} \;
可將 HISTORY=7 進行修改
看完上述內容,你們掌握如何理解System Activity Report的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。