Les E/S asynchrones Linux (AIO) sont une fonctionnalité améliorée fournie dans le noyau Linux. Il s'agit d'une fonctionnalité standard du noyau Linux 2.6. L'idée de base derrière AIO est de permettre à un processus de lancer de nombreuses opérations d'E/S sans bloquer ni attendre la fin d'une opération. Le processus peut récupérer les résultats de l'opération d'E/S ultérieurement ou lorsqu'il est averti que l'opération d'E/S est terminée.
E/S synchrone : le thread démarre une opération d'E/S, puis entre immédiatement dans l'état d'attente, et ne se réveille que lorsque l'opération d'E/S est terminée pour continuer l'exécution.
IO asynchrone : le thread envoie une requête IO au noyau, puis continue de traiter d'autres choses. Une fois que le noyau a terminé la requête IO, il informera le thread que l'opération IO est terminée
1. -- Vérifiez si le système utilise des E/S asynchrones . Slab est l'allocateur de mémoire Linux et des structures de mémoire liées à AIO ont été allouées.
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
Vérifiez que la ligne kiocb affiche 0, indiquant que les IO asynchrones ne sont pas démarrées.
2. Vérifiez si l'io asynchrone est activé dans la base de données
(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 a lié le package aio
[oracle@localhost ~]$ /usr/bin/ldd $ORACLE_HOME/bin/oracle | grep libaio libaio.so.1 => /lib64/libaio.so.1 (0x0000003e13000000)
Le paramètre filesystemio_options dans la base de données est défini sur aucun. cet asynchrone n'est pas configuré dans Oracle IO,
Ici, vous pouvez ajuster le paramètre filesystemio_options dans la base de données pour setall
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@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
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!