<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://futex.re/mediawiki/index.php?action=history&amp;feed=atom&amp;title=8.1_I%2FO</id>
	<title>8.1 I/O - Historique des versions</title>
	<link rel="self" type="application/atom+xml" href="https://futex.re/mediawiki/index.php?action=history&amp;feed=atom&amp;title=8.1_I%2FO"/>
	<link rel="alternate" type="text/html" href="https://futex.re/mediawiki/index.php?title=8.1_I/O&amp;action=history"/>
	<updated>2026-04-19T14:09:58Z</updated>
	<subtitle>Historique des versions pour cette page sur le wiki</subtitle>
	<generator>MediaWiki 1.39.17</generator>
	<entry>
		<id>https://futex.re/mediawiki/index.php?title=8.1_I/O&amp;diff=292&amp;oldid=prev</id>
		<title>Futex le 9 mai 2011 à 13:18</title>
		<link rel="alternate" type="text/html" href="https://futex.re/mediawiki/index.php?title=8.1_I/O&amp;diff=292&amp;oldid=prev"/>
		<updated>2011-05-09T13:18:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nouvelle page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;La commande aioo est apparue en AIX 5.3 TL05. Elle permet de contrôler la configuration des Asynchronous I/O sur le système.&lt;br /&gt;
&lt;br /&gt;
  {op}@bemi13 # aioo -a&lt;br /&gt;
  minservers = 21&lt;br /&gt;
  maxservers = 60&lt;br /&gt;
  maxreqs = 16384&lt;br /&gt;
  fsfastpath = 0&lt;br /&gt;
&lt;br /&gt;
Ou,&lt;br /&gt;
&lt;br /&gt;
  # lsattr -El aio0&lt;br /&gt;
  autoconfig available STATE to be configured at system restart True&lt;br /&gt;
  fastpath   enable    State of fast path                       True&lt;br /&gt;
  kprocprio  39        Server PRIORITY                          True&lt;br /&gt;
  maxreqs    16384     Maximum number of REQUESTS               True&lt;br /&gt;
  maxservers 60        MAXIMUM number of servers per cpu        True&lt;br /&gt;
  minservers 20        MINIMUM number of servers                True&lt;br /&gt;
&lt;br /&gt;
Attention, la commande n&amp;#039;existe pas en AIX 6.1, il faut utiliser ioo -a&lt;br /&gt;
&lt;br /&gt;
  (root@yvai2080) # ioo -a&lt;br /&gt;
                    aio_active = 1&lt;br /&gt;
                   aio_maxreqs = 65536&lt;br /&gt;
                aio_maxservers = 30&lt;br /&gt;
                aio_minservers = 3&lt;br /&gt;
         aio_server_inactivity = 300&lt;br /&gt;
         j2_atimeUpdateSymlink = 0&lt;br /&gt;
 j2_dynamicBufferPreallocation = 16&lt;br /&gt;
             j2_inodeCacheSize = 400&lt;br /&gt;
           j2_maxPageReadAhead = 128&lt;br /&gt;
             j2_maxRandomWrite = 0&lt;br /&gt;
          j2_metadataCacheSize = 400&lt;br /&gt;
           j2_minPageReadAhead = 2&lt;br /&gt;
  j2_nPagesPerWriteBehindCluster = 32&lt;br /&gt;
             j2_nRandomCluster = 0&lt;br /&gt;
              j2_syncPageCount = 0&lt;br /&gt;
              j2_syncPageLimit = 16&lt;br /&gt;
                    lvm_bufcnt = 32&lt;br /&gt;
                    maxpgahead = 8&lt;br /&gt;
                    maxrandwrt = 0&lt;br /&gt;
                      numclust = 1&lt;br /&gt;
                     numfsbufs = 1200&lt;br /&gt;
                     pd_npages = 65536&lt;br /&gt;
              posix_aio_active = 0&lt;br /&gt;
             posix_aio_maxreqs = 65536&lt;br /&gt;
          posix_aio_maxservers = 30&lt;br /&gt;
          posix_aio_minservers = 3&lt;br /&gt;
   posix_aio_server_inactivity = 300&lt;br /&gt;
&lt;br /&gt;
On voit les paramètres classiques correspondant aux nombre d&amp;#039; aioserver démarrés par défaut sur chaque processeur (minservers), le nombre maximum d&amp;#039;aioserver par processeur (maxservers) et le nombre de requètes que chaque aioserver peut traiter (maxreqs).&lt;br /&gt;
&lt;br /&gt;
On peut compter le nombre d&amp;#039;aioserver démarrés avec la commande pstat :&lt;br /&gt;
&lt;br /&gt;
  # pstat -a|grep aio&lt;br /&gt;
  48 a   30098      1  30098     0     0     1  aioserver  &lt;br /&gt;
  55 a   3708a      1  3708a     0     0     1  aioserver  &lt;br /&gt;
  56 a   38088      1  38088     0     0     1  aioserver  &lt;br /&gt;
  60 a   3c096      1  3c096     0     0     1  aioserver  &lt;br /&gt;
  62 a   3e096      1  3e096     0     0     1  aioserver  &lt;br /&gt;
  72 a   48096      1  48096     0     0     1  aioserver  &lt;br /&gt;
  74 a   4a098      1  4a098     0     0     1  aioserver  &lt;br /&gt;
  78 a   4e09c      1  4e09c     0     0     1  aioserver  &lt;br /&gt;
  79 a   4f09e      1  4f09e     0     0     1  aioserver  &lt;br /&gt;
  ...&lt;br /&gt;
&lt;br /&gt;
Il suffit de compter le nombre d&amp;#039;aioserver démarré puis de le diviser par le nombre de processeurs logiques (si le SMT est activé) pour savoir où l&amp;#039;on se situe dans le paramètrage. Les aioserver sont des processus kernel, on peut donc aussi les lister avec la commande ps aux.&lt;br /&gt;
&lt;br /&gt;
En plus de tout cela, on découvre un nouveau paramètre : fsfastpath. Il permet d&amp;#039;activer une implémentation où les I/O asynchrones sont directement adressés au driver sans passer par les processus aioserver . Cette implémentation est prévue pour les filesystems JFS2 en Concurrent I/O.&lt;br /&gt;
&lt;br /&gt;
Il suffit de passer ce paramètre à 1 pour en profiter car elle n&amp;#039;est pas activée par défaut.&lt;br /&gt;
&lt;br /&gt;
  # aioo -o fsfastpath=1&lt;br /&gt;
&lt;br /&gt;
En théorie, on gagne en performance au niveau cpu en évitant des context switchs dûe au passage par les aioserver et en mémoire comme il n&amp;#039;y a plus besoin d&amp;#039;allouer de la mémoire pour ces process. En pratique, et en ayant tester ce paramètre sur des serveurs réels(recette et production donc difficile à monitorer de manière précise), je n&amp;#039;ai pas remarqué de différences significatives ce qui est déjà pas mal :-) . Avec ce paramètre, il est inutile d&amp;#039;effectuer un tuning fin des aioserver et on ne risque pas de problèmes de performance comme lorsque le nombre d&amp;#039;aioserver est insuffisant.&lt;br /&gt;
&lt;br /&gt;
Dernier commentaire sur la commande aioo, elle n&amp;#039;est pas encore bien implémentée dans AIX dans le sens où son paramètrage n&amp;#039;est pas conservée lors d&amp;#039;un reboot (pas d&amp;#039;entrées ajoutées dans les fichiers du répertoire /etc/tunables). Il faut donc ajouter une entrée dans /etc/inittab pour que le paramètre soit pris en compte au reboot.&lt;br /&gt;
&lt;br /&gt;
Et pour la fin l&amp;#039;information la plus importante à mes yeux, IBM maintient un redbook intégrant les nouvelles fonctionnalités apportées à AIX 5.3(uniquement lors des TL impaires). Il s&amp;#039;agit du redbook sg247414 nommé &amp;quot;AIX 5L Differences guide Version 5.3 Addendum&amp;quot;. Il ne se contente pas de lister les nouvelles fonctionnalités mais les décrit aussi. Vraiment très sympatique.&lt;br /&gt;
&lt;br /&gt;
PS: la commande existe aussi en AIX 5.2 TL9 mais sans le paramètre fsfastpath.&lt;/div&gt;</summary>
		<author><name>Futex</name></author>
	</entry>
</feed>