Linux上Oracle是否使用非同步io的診斷
客戶的資料庫IO負載較重,檢查後發現並未設定非同步IO。
整個資料庫的負載都集中在IO相關的等待上:
Top 5 Timed Foreground Events
Event |
Waits |
Time(s) |
Avg wait (ms) |
% DB time |
Wait Class |
log file sync |
697,116 |
70,128 |
101 |
36.29 |
Commit |
db file sequential read |
2,982,135 |
54,498 |
18 |
28.20 |
User I/O |
db file scattered read |
754,680 |
38,741 |
51 |
20.05 |
User I/O |
free buffer waits |
35,410 |
20,560 |
581 |
10.64 |
Configuration |
DB CPU |
6,172 |
3.19 |
檢查後發現,當前系統並未使用非同步io:
[oracle@localhost ~]$ cat /proc/slabinfo | grep kio
kioctx 37 140 384
10 1 : tunables 54
27 8 : slabdata 14 14 0
kiocb 0 0 256
15 1 : tunables 120
60 8 : slabdata
0 0 0
返回結果中kiocp對應的前兩項為0,說明系統中沒有使用非同步io。
檢查顯示oracle已經連結了aio的包:
[oracle@localhost ~]$ /usr/bin/ldd
$ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)
而資料庫中檢查發現filesystemio_options設定有誤:
SQL> show parameter disk_asynch_io
NAME TYPE VALUE
------------------------------------ --------------------------------
--------------------
disk_asynch_io
boolean TRUE
SQL> show parameter filesystemio_options
NAME TYPE VALUE
------------------------------------ -------------------------------- -------------------
filesystemio_options
string
none
當前使用的是檔案系統,因此需要將filesystemio_options設定為asynch,才能開啟非同步io:
SQL> ALTER SYSTEM SET FILESYSTEMIO_OPTIONS = ASYNCH SCOPE = SPFILE;
System altered.
SQL> SHUTDOWN IMMEDIATE
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> STARTUP
ORACLE instance started.
Total System Global Area 6.0264E+10
bytes
Fixed Size 2242912 bytes
Variable Size 2147485344 bytes
Database Buffers 5.7982E+10 bytes
Redo Buffers 131960832 bytes
Database mounted.
Database opened.
SQL>
再次檢查系統上非同步io的設定,發現非同步io已經啟動:
[oracle@localhost ~]$ more /proc/slabinfo |grep kio
kioctx 130 160
384 10 1 : tunables
54 27 8 : slabdata
16 16 0
kiocb 16 30 256
15 1 : tunables 120
60 8 : slabdata 2 2 1
可以看到,目前非同步IO已經生效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-720181/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux上Oracle啟用非同步IOLinuxOracle非同步
- 一次ORACLE IO效能診斷案例Oracle
- 【轉載】Linux上Oracle啟用非同步IOLinuxOracle非同步
- Oracle在Linux下使用非同步IO配置OracleLinux非同步
- java同步非阻塞IOJava
- oracle診斷工具-RDA使用Oracle
- Oracle診斷工具RDA使用Oracle
- Java 非阻塞 IO 和非同步 IOJava非同步
- IO - 同步 非同步 阻塞 非阻塞的區別非同步
- IO模式和IO多路複用(阻塞IO、非阻塞IO、同步IO、非同步IO等概念)模式非同步
- 【轉】oracle診斷工具-RDA使用Oracle
- oracle診斷工具-RDA使用(轉)Oracle
- Oracle在Linux下使用非同步IO(aio)配置(轉)OracleLinux非同步AI
- ORACLE診斷案例Oracle
- Oracle故障診斷Oracle
- ORACLE診斷事件Oracle事件
- 談談對不同I/O模型的理解 (阻塞/非阻塞IO,同步/非同步IO)模型非同步
- ORACLE 非同步IOOracle非同步
- oracle 效能診斷工具Oracle
- Oracle診斷事件列表Oracle事件
- ORACLE診斷事件(zt)Oracle事件
- Oracle中診斷阻塞的sessionOracleSession
- ORACLE診斷事件的總結Oracle事件
- Linux的非同步IO(AIO)在Oracle中應用Linux非同步AIOracle
- 如何解讀 Java IO、NIO 中的同步阻塞與同步非阻塞?Java
- 網路IO之阻塞、非阻塞、同步、非同步總結非同步
- 診斷oracle clusterware問題,需要收集並上傳的檔案Oracle
- IO通訊模型(二)同步非阻塞模式NIO(NonBlocking IO)模型模式BloC
- 使用 Diagwait 作為診斷工具,獲取用於診斷 Oracle Clusterware 節點驅逐AIOracle
- Oracle診斷事件列表(轉)Oracle事件
- oracle 事件診斷詳細Oracle事件
- oracle sqlt(sqltxplain) 診斷工具OracleSQLAI
- Oracle效能診斷藝術Oracle
- 網路診斷工具的使用
- 另闢蹊徑-診斷工具之 IO waitAI
- 使用Dstat來進行Linux綜合效能診斷Linux
- Oracle 之 AIO (非同步io)OracleAI非同步
- 判斷standby日誌是否同步primary