numa(7) Miscellaneous Information Manual numa(7) NOM numa - Panorama des architectures a memoire non uniforme DESCRIPTION NUMA (<< Non-Uniform Memory Access >> : acces a la memoire de facon non uniforme) se refere aux systemes multiprocesseur dont la memoire est divise en plusieurs noeuds memoire. Le temps d'acces a un noeud memoire depend de la localisation relative du CPU utilisateur et du noeud utilise (a l'oppose des systemes multiprocesseur symetriques pour lesquels le temps d'acces a la memoire est le meme quel que soit le CPU). Normalement, chaque CPU sur un systeme NUMA a un noeud memoire local pour lequel il peut acceder plus rapidement au contenu, par rapport aux memoires des noeuds locaux aux autres CPU ou a la memoire sur un bus partage par tous les CPU. Appels systeme NUMA Le noyau Linux implemente les appels systeme suivants lies 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 bibliotheque >> ci-dessous. /proc/pid/numa_maps (depuis Linux 2.6.14) Ce fichier affiche des informations concernant l'allocation et la politique memoire NUMA d'un processus. Chaque ligne contient des informations concernant un intervalle memoire utilise par un processus, indiquant, entre autre, la politique memoire effective pour cet intervalle memoire et sur quels noeuds les pages ont ete allouees. 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 memoire est utilisee. Une ligne est affichee pour chaque intervalle memoire du processus. Le premier champ de chaque ligne indique l'adresse de depart de l'intervalle memoire. Ce champ permet une correlation 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'acces et le partage. Le second champ indique la politique memoire effective actuellement pour l'intervalle memoire. Notez que la politique effective n'est pas forcement la politique installee par le processus pour cet intervalle memoire. En particulier, si le processus a installe une politique par defaut (<< default >>) pour cet intervalle, la politique effective pour cet intervalle sera la politique du processus, qui peut etre ou ne pas etre << default >>. Le reste de la ligne contient des informations sur les pages allouees dans l'intervalle memoire, comme ceci : N= Le nombre de pages allouees sur le noeud . ne comprend que les pages actuellement projetees par le processus. Un deplacement ou une liberation de page peut avoir temporairement deprojete les pages associees avec cet intervalle memoire. Ces pages ne peuvent reapparaitre que quand le processus essaie de les referencer. Si l'intervalle memoire represente une zone de memoire partagee ou une projection dans un fichier, d'autres processus peuvent actuellement avoir d'autres pages projetees dans l'intervalle memoire associe. file= Le fichier contenant l'intervalle memoire. Si le fichier est une projection privee, des acces en ecriture peuvent avoir produit des pages COW (<< Copy-On-Write >> : copie a l'ecriture) dans cet intervalle memoire. Ces pages sont affichees comme des pages anonymes. heap L'intervalle memoire est utilise pour le tas. stack L'intervalle memoire est utilise pour la pile. huge Gros intervalle memoire. Le nombre de pages indique correspond a de grosses pages, pas a des pages de taille usuelle. anon= Le nombre de pages anonymes dans l'intervalle. dirty= Nombre de pages sales. mapped= Nombre total de pages projetees, n'etant ni sales (dirty), ni anonymes (anon). mapmax= Nombre maximal de processus projetant une meme page (<< mapcount >>) rencontres lors de l'analyse. Ceci peut etre utilise comme indicateur du degre de partage dans un intervalle memoire donne. swapcache= Nombre de pages qui ont une entree associee sur un peripherique de partage. active= Le nombre de pages sur la liste active. Ce champ n'est affiche que si ce nombre differe du nombre de pages dans l'intervalle. Ceci signifie que certaines pages inactives existent dans l'intervalle memoire, et qu'elles pourront etre retirees de la memoire prochainement par le << swapper >> (processus de gestion des peripheriques d'echange). writeback= Nombre de pages qui sont actuellement en cours d'ecriture sur le disque. STANDARDS Aucun. NOTES Les appels systeme NUMA de Linux et les interfaces /proc ne sont disponibles que si le noyau est configure et construit avec l'option CONFIG_NUMA. Prise en charge par la bibliotheque Faire l'edition des liens avec -lnuma pour obtenir la definition des appels systeme. libnuma et l'en-tete sont disponibles dans le paquet numactl. Cependant, les applications ne devraient pas utiliser ces appels systeme directement. A la place, l'interface de plus haut niveau fournie par les fonctions numa(3) du paquet numactl est recommandee. Le paquet numactl est disponible a l'adresse . Le paquet est aussi inclus dans certaines distributions. Certaines distributions inclues separement la bibliotheque et les en-tetes pour le developpement 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 francaise de cette page de manuel a ete creee par Christophe Blaess , Stephan Rafin , Thierry Vignaud , Francois Micaux, Alain Portal , Jean-Philippe Guerard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas Francois , Florentin Duneau , Simon Paillard , Denis Barbier , David Prevot et Jean-Pierre Giraud Cette traduction est une documentation libre ; veuillez vous reporter a la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITE LEGALE. Si vous decouvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message a . Pages du manuel de Linux 6.06 31 octobre 2023 numa(7)