numa

NUMA(7)                   Manuel du programmeur Linux                  NUMA(7)



NOM
       numa - Panorama des architectures à mémoire non uniforme

DESCRIPTION
       NUMA (« Non-Uniform Memory Access » : accès à la mémoire de façon
       non uniforme) se réfère aux systèmes multiprocesseur dont la
       mémoire est divisé en plusieurs nÅuds mémoire. Le temps d'accès Ã
       un nÅud mémoire dépend de la localisation relative du CPU utilisateur
       et du nÅud utilisé (à  l'opposé des systèmes multiprocesseur
       symétriques pour lesquels le temps d'accès à la mémoire est le
       même quel que soit le CPU). Normalement, chaque CPU sur un système
       NUMA a un nÅud mémoire local pour lequel il peut accéder plus
       rapidement au contenu, par rapport aux mémoires des nÅuds locaux aux
       autres CPU où à la mémoire sur un bus partagé par tous les CPU.

   Appels système NUMA
       Le noyau Linux implémente les appels système suivants liés aux NUM :
       get_mempolicy(2), mbind(2), migrate_pages(2), move_pages(2) et
       set_mempolicy(2). Cependant les applications devraient normalement
       utiliser l'interface fournie par libnuma ; consultez « Prise en charge
       par la bibliothèque » ci-dessous.

   /proc/[number]/numa_maps (depuis Linux 2.6.14)
       Ce fichier affiche des informations concernant l'allocation et la
       politique mémoire NUMA d'un processus.

       Chaque ligne contient des informations concernant un intervalle
       mémoire utilisé par un processus, indiquant, entre autre, la
       politique mémoire effective pour cet intervalle mémoire et sur quels
       nÅuds les pages ont été allouées.

       numa_maps est un fichier en lecture seule. Quand /proc/<pid>/numa_maps
       est lu, le noyau analyse l'espace d'adressage virtuel du processus et
       indique comment la mémoire est utilisée. Une ligne est affichée pour
       chaque intervalle mémoire du processus.

       Le premier champ de chaque ligne indique l'adresse de départ de
       l'intervalle mémoire. Ce champ permet une corrélation avec le contenu
       du fichier /proc/<pid>/maps, qui contient l'adresse de fin de
       l'intervalle et d'autres informations, comme les permissions d'accès
       et le partage.

       Le second champ indique la politique mémoire effective actuellement
       pour l'intervalle mémoire. Notez que la politique effective n'est pas
       forcément la politique installée par le processus pour cet intervalle
       mémoire. En particulier, si le processus a installé une politique par
       défaut (« default ») pour cet intervalle, la politique effective
       pour cet intervalle sera la politique du processus, qui peut être ou
       ne pas être « default ».

       Le reste de la ligne contient des informations sur les pages allouées
       dans l'intervalle mémoire, comme ceci :

       N<node>=<nombre_pages>
              Le nombre de pages allouées sur le nÅud <node>. <nombre_pages>
              ne comprend que les pages actuellement projetées par le
              processus. Un déplacement ou une libération de page peut avoir
              temporairement déprojeté les pages associées avec cet
              intervalle mémoire. Ces pages ne peuvent réapparaître que
              quand le processus essaie de les référencer. Si l'intervalle
              mémoire représente une zone de mémoire partagée ou une
              projection dans un fichier, d'autres processus peuvent
              actuellement avoir d'autres pages projetées dans l'intervalle
              mémoire associé.

       file=<nom_fichier>
              Le fichier contenant l'intervalle mémoire. Si le fichier est
              une projection privée, des accès en écriture peuvent avoir
              produit des pages COW (« Copy-On-Write » : copie Ã
              l'écriture) dans cet intervalle mémoire. Ces pages sont
              affichées comme des pages anonymes.

       heap   L'intervalle mémoire est utilisé pour le tas.

       stack  L'intervalle mémoire est utilisé pour la pile.

       huge   Gros intervalle mémoire. Le nombre de pages indiqué correspond
              à de grosses pages, pas à des pages de taille usuelle.

       anon=<pages>
              Le nombre de pages anonymes dans l'intervalle.

       dirty=<pages>
              Nombre de pages sales.

       mapped=<pages>
              Nombre total de pages projetées, n'étant ni sales (dirty), ni
              anonymes (anon).

       mapmax=<compte>
              Nombre maximal de processus projetant une même page
              (« mapcount ») rencontrés lors de l'analyse. Ceci peut être
              utilisé comme indicateur du degré de partage dans un
              intervalle mémoire donné.

       swapcache=<compte>
              Nombre de pages qui ont une entrée associée sur un
              périphérique de partage.

       active=<pages>
              Le nombre de pages sur la liste active. Ce champ n'est affiché
              que si ce nombre diffère du nombre de pages dans l'intervalle.
              Ceci signifie que certaines pages inactives existent dans
              l'intervalle mémoire, et qu'elles pourront être retirées de
              la mémoire prochainement par le « swapper » (processus de
              gestion des périphériques d'échange).

       writeback=<pages>
              Nombre de pages qui sont actuellement en cours d'écriture sur
              le disque.

CONFORMITÃ
       Aucune norme ne régi les interfaces NUMA.

NOTES
       Les appels système NUMA de Linux et les interfaces /proc ne sont
       disponibles que si le noyau est configuré et construit avec l'option
       CONFIG_NUMA.

   Prise en charge par la bibliothèque
       Faire l'édition des liens avec -lnuma pour obtenir la définition des
       appels système. libnuma et l'en-tête <numaif.h> sont disponibles dans
       le paquet numactl.

       Cependant, les applications ne devraient pas utiliser ces appels
       système directement. à la place, l'interface de plus haut niveau
       fournie par les fonctions numa(3) du paquet numactl est recommandée.
       Le paquet numactl est disponible à  l'adresse ⟨ftp://oss.sgi.com/www
       /projects/libnuma/download/⟩.  Le paquet est aussi inclus dans
       certaines distributions. Certaines distributions inclues séparément
       la bibliothèque et les en-têtes pour le développement dans le paquet
       numactl-devel.

VOIR AUSSI
       get_mempolicy(2), mbind(2), move_pages(2), set_mempolicy(2), numa(3),
       cpuset(7), numactl(8)

COLOPHON
       Cette page fait partie de la publication 3.70 du projet man-pages
       Linux. Une description du projet et des instructions pour signaler des
       anomalies peuvent être trouvées à l'adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION
       Depuis 2010, cette traduction est maintenue à l'aide de l'outil po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction
       francophone au sein du projet perkamon
       <http://perkamon.alioth.debian.org/>.

       Nicolas François et l'équipe francophone de traduction de
       Debian (2006-2009).

       Veuillez signaler toute erreur de traduction en écrivant Ã
       <perkamon-fr@traduc.org>.

       Vous pouvez toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « LC_ALL=C man <section> <page_de_man> ».



Linux                            5 août 2012                          NUMA(7)