Man page - numa(7)

Packages contains this manual

Available languages:

en fr ja ru ro

Manual

numa

NOM
DESCRIPTION
Appels systĂšme NUMA
/proc/pid/numa_maps (depuis Linux 2.6.14)
STANDARDS
NOTES
Prise en charge par la bibliothĂšque
VOIR AUSSI
TRADUCTION

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/pid/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.

STANDARDS

Aucun.

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)

TRADUCTION

La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org .