Linux 비동기 I/O(AIO)는 Linux 커널에서 제공되는 향상된 기능입니다. 이는 Linux 2.6 커널의 표준 기능입니다. AIO의 기본 아이디어는 프로세스가 작업이 완료될 때까지 차단하거나 기다리지 않고 많은 I/O 작업을 시작할 수 있도록 하는 것입니다. 프로세스는 나중에 I/O 작업 결과를 검색하거나 I/O 작업이 완료되었다는 알림을 받을 때 검색할 수 있습니다.
동기 IO: 스레드는 IO 작업을 시작한 후 즉시 대기 상태에 들어가고, IO 작업이 완료될 때까지 깨어나지 않고 실행을 계속합니다.
비동기 IO: 스레드는 커널에 IO 요청을 보낸 다음 계속해서 다른 작업을 처리합니다. 커널이 IO 요청을 완료한 후 IO 작업이 완료되었음을 스레드에 알립니다.
1.--다음을 확인합니다. 시스템은 비동기 IO를 사용합니다. Slab은 Linux 메모리 할당자이며 AIO 관련 메모리 구조가 할당되었습니다.
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
kiocb 행에 0이 표시되어 비동기 IO가 시작되지 않았음을 나타냅니다.
2. 데이터베이스에서 비동기 IO가 활성화되어 있는지 확인하세요
(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이 aio 패키지를 연결했습니다
[oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)
참고: 확인 결과 oracle이 aio 패키지를 연결한 것으로 표시됩니다
4. aio를 활성화하는 매개변수
데이터베이스의 filesystemio_options 매개변수가 Oracle에 구성되지 않은 것 같습니다.
여기에서 데이터베이스의 filesystemio_options 매개변수를 setall로 조정할 수 있습니다. effect
SQL> alter system set filesystemio_options = setall scope=spfile; SQL> alter system set disk_asynch_io = true scope=spfile; SQL> shutdown immediate; SQL> startup;
위 내용은 Oracle의 AIO 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!