系統環境:
操作系統: AIX 5.3.9
Oracle: Oracle 10gR2
SAR可用於監控Unix系統性能,幫助我們分析性能瓶頸。sar工具的使用方式為”sar [選項] intervar [count]”,其中interval為統計信息采樣時間,count為采樣次數。
RH442攻略之SAR http://www.linuxidc.com/Linux/2014-03/98207.htm
Linux 從 SAR 到 SAR2html 的認識 http://www.linuxidc.com/Linux/2013-08/88239.htm
Linux SAR 性能計數器工具 http://www.linuxidc.com/Linux/2012-10/72790.htm
Linux SAR用法 http://www.linuxidc.com/Linux/2012-08/68046.htm
UNIX 中 SAR 命令的詳細使用 http://www.linuxidc.com/Linux/2012-03/55737.htm
Linux認證輔導:Linux SAR 命令 http://www.linuxidc.com/Linux/2012-01/51343.htm
下文將說明如何使用sar獲取以下性能分析數據:
常用的選項包括:
-b:報告I/O使用情況以及傳輸速率。(只適用於2.5及之前的內核,所以新內核有可能不支持這個選項)
-B:報告“頁”使用情況
-c:報告進程創建情況
-d:報告每一個塊設備的使用情況
(當你使用時,你會發現在DEV列有類似dev1-7格式的字符串,
其中1代表設備的主序號,n代表設備的從序號,
而且rd_sec/s列和wr_sec/s列的單位都是512bytes,也就是512B,也就是0.5KB)
-I:匯報中斷情況
-n:匯報網絡情況
-P:設定CPU
-q:匯報隊列長度和負載信息
-r:匯報內存和交換區使用情況
-R:匯報內存情況
-u:匯報CPU使用情況
-v:匯報i節點、文件和其他內核表信息
-w:匯報系統上下文切換情況
-x:可以針對某個特定PID給出統計信息,
可以直接指定進程ID號;
也可以指定為SELF,這樣就是檢測sar進程本身;
如果設定為ALL,則表示匯報所有系統進程信息。
-X:匯報特定PID的子進程的信息
-y:設定TTY設備的信息。
案例分析:
1、系統環境
[root@aix211 /]#lspv
hdisk0 00040f8aaa29d28e rootvg active
hdisk1 000e1a6ce663b4af asmvg active
[root@aix211 /]#lsvg -l asmvg
asmvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
lv_asm1 jfs 64 64 1 open/syncd N/A
lv_asm2 jfs 64 64 1 open/syncd N/A
lv_asm3 jfs 64 64 1 open/syncd N/A
lv_asm4 jfs 64 64 1 open/syncd N/A
SQL> set linesize 120
SQL> select group_number,name,state from v$asm_diskgroup;
GROUP_NUMBER NAME STATE
------------ ------------------------------ -----------
1 DG1 MOUNTED
2 RCY1 MOUNTED
SQL> select GROUP_NUMBER,DISK_NUMBER,STATE,NAME,PATH from v$asm_disk;
GROUP_NUMBER DISK_NUMBER STATE NAME PATH
------------ ----------- -------- ------------------------------ ------------------------
1 0 NORMAL DG1_0000 /dev/rlv_asm1
1 1 NORMAL DG1_0001 /dev/rlv_asm2
2 0 NORMAL RCY1_0000 /dev/rlv_asm3
2 1 NORMAL RCY1_0001 /dev/rlv_asm4
在hdisk1磁盤上建立ASMVG磁盤組,並建立邏輯卷;在邏輯卷的基礎上,建立ASM disk;
2、數據庫環境
SQL> set linesize 120
SQL> select file_id,file_name,tablespace_name from dba_data_files
FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------- ---------------------------
6 +DG1/prod/datafile/tbs2.265.853498689 TBS2
4 +DG1/prod/datafile/users.261.848857443 USERS
3 +DG1/prod/datafile/sysaux.258.848857287 SYSAUX
2 +DG1/prod/datafile/undotbs1.260.848857407 UNDOTBS1
1 +DG1/prod/datafile/system.257.848857161 SYSTEM
5 +DG1/prod/datafile/example.259.848857363 EXAMPLE
SQL> select file_id,file_name,tablespace_name from dba_temp_files;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- -------------------------------------------------- ---------------------------
2 +DG1/prod/tempfile/temp.262.848858041 TEMP
SQL> col member for a50
SQL> select group#,member from v$logfile order by 1;
GROUP# MEMBER
---------- --------------------------------------------------
5 +DG1/prod/onlinelog/group_5.263.848858213
5 +RCY1/prod/onlinelog/group_5.256.848858217
6 +DG1/prod/onlinelog/group_6.264.848858253
6 +RCY1/prod/onlinelog/group_6.257.848858259
SQL> show parameter log
123
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_1 string location=/arch/arch_prod
2、案例(執行數據插入)
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
EMP1 TABLE
DEPT1 TABLE
6 rows selected.
SQL> create table t1 (id int);
Table created.
SQL> begin
2 for i in 1..100000 loop
3 execute immediate 'insert into t1 values ('||i||')';
4 end loop;
5 end;
6 /
PL/SQL procedure successfully completed.
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-07/104628p2.htm