Heim  >  Artikel  >  Datenbank  >  AIO-Analyse in Oracle

AIO-Analyse in Oracle

一个新手
一个新手Original
2017-09-08 10:50:421201Durchsuche

Linux Asynchronous I/O (AIO) ist eine erweiterte Funktion, die im Linux-Kernel bereitgestellt wird. Es handelt sich um eine Standardfunktion des Linux 2.6-Kernels. Die Grundidee von AIO besteht darin, einem Prozess die Initiierung vieler E/A-Vorgänge zu ermöglichen, ohne den Abschluss eines Vorgangs zu blockieren oder abzuwarten. Der Prozess kann die Ergebnisse des E/A-Vorgangs später abrufen oder wenn ihm mitgeteilt wird, dass der E/A-Vorgang abgeschlossen ist.

Synchronous IO: Der Thread startet einen IO-Vorgang und wechselt dann sofort in den Wartezustand. Er wacht erst auf, wenn der IO-Vorgang abgeschlossen ist, um die Ausführung fortzusetzen.
Asynchrone E/A: Der Thread sendet eine E/A-Anfrage an den Kernel und verarbeitet dann weiterhin andere Dinge. Nachdem der Kernel die E/A-Anfrage abgeschlossen hat, benachrichtigt er den Thread, dass der E/A-Vorgang abgeschlossen ist

1 . – Überprüfen Sie, ob das System asynchrone E/A verwendet. Slab ist der Linux-Speicherzuweiser und es wurden AIO-bezogene Speicherstrukturen zugewiesen.

more /proc/slabinfo |grep kio
[root@localhost ~]# grep kio /proc/slabinfo
kioctx 0 0 384 10 1 : tunables 54 27 0 : slabdata 0 0 0
kiocb 0 0 256 15 1 : tunables 120 60 0 : slabdata 0 0 0

Achten Sie darauf, dass in der kiocb-Zeile 0 angezeigt wird, was darauf hinweist, dass die asynchrone E/A nicht gestartet wurde.

2. Überprüfen Sie, ob in der Datenbank asynchrones IO aktiviert ist

(11G)SYS@qixindb> show parameter disk_asynch_io
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
disk_asynch_io boolean TRUE
(11G)SYS@qixindb> show parameter filesystem
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
filesystemio_options string none
filesystemio_options 的四种值:
ASYNCH: enable asynchronous I/O on file system files, which has no timing requirement for transmission.
在文件系统文件上启用异步I/O,在数据传送上没有计时要求。
DIRECTIO: enable direct I/O on file system files, which bypasses the buffer cache.
在文件系统文件上启用直接I/O,绕过buffer cache。
SETALL: enable both asynchronous and direct I/O on file system files.
在文件系统文件上启用异步和直接I/O。
NONE: disable both asynchronous and direct I/O on file system files.
在文件系统文件上禁用异步和直接I/O。

3. Oracle hat das AIO-Paket verknüpft

[oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio
libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)

Hinweis: Die Überprüfung zeigt, dass Oracle das AIO-Paket verknüpft hat

4. Passen Sie die Datenbankparameter an, um AIO zu aktivieren.
Der Parameter filesystemio_options ist anscheinend auf „none“ gesetzt dass asynchron in Oracle nicht konfiguriert ist,
Hier können Sie den Parameter filesystemio_options auf setall anpassen;

SQL> alter system set filesystemio_options = setall scope=spfile; 
SQL> alter system set disk_asynch_io = true scope=spfile; 
SQL> shutdown immediate;
SQL> startup;


Zusätzlich: Es werden kostenlose Pufferwartezeiten angezeigt. Wenn das Warten auf ein Ereignis oder io nicht ausreicht, können Sie erwägen, aio zu aktivieren.

Das obige ist der detaillierte Inhalt vonAIO-Analyse in Oracle. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn