{"id":1513,"date":"2025-10-18T12:14:24","date_gmt":"2025-10-18T12:14:24","guid":{"rendered":"https:\/\/help.peacedoorball.blog\/ca\/?p=1513"},"modified":"2025-10-18T12:14:24","modified_gmt":"2025-10-18T12:14:24","slug":"comment-comprendre-larchitecture-numa","status":"publish","type":"post","link":"https:\/\/help.peacedoorball.blog\/ca\/comment-comprendre-larchitecture-numa\/","title":{"rendered":"Comment comprendre l&rsquo;architecture NUMA"},"content":{"rendered":"<p>Parfois, parler de configurations multic\u0153urs et multiprocesseurs donne l&rsquo;impression de plonger dans le grand bain des serveurs, mais honn\u00eatement, c&rsquo;est pertinent m\u00eame pour quelqu&rsquo;un qui bidouille des stations de travail haut de gamme ou qui cherche \u00e0 optimiser les performances d&rsquo;une application \u00e0 threads multiples. D\u00e8s que l&rsquo;on commence \u00e0 empiler des processeurs ou \u00e0 passer \u00e0 des cartes m\u00e8res multisockets sophistiqu\u00e9es, les choses peuvent devenir \u00e9tranges, notamment en ce qui concerne les performances de la m\u00e9moire. Vous remarquerez peut-\u00eatre que votre syst\u00e8me n&rsquo;est pas aussi r\u00e9actif qu&rsquo;il le devrait, ou que les t\u00e2ches prennent plus de temps que pr\u00e9vu, m\u00eame avec des processeurs dot\u00e9s d&rsquo;un nombre important de c\u0153urs. Il s&rsquo;av\u00e8re que l&rsquo;un des coupables sournois est la latence m\u00e9moire et le NUMA (Non-Uniform Memory Access), ce qui signifie que \u00ab toutes les RAM n&rsquo;ont pas la m\u00eame rapidit\u00e9 \u00bb, selon leur emplacement par rapport \u00e0 vos processeurs.<\/p>\n<p>Si vous utilisez une configuration multiprocesseur et que le syst\u00e8me semble lent, il est judicieux d&rsquo;examiner attentivement la gestion de la m\u00e9moire par le syst\u00e8me d&rsquo;exploitation. L&rsquo;id\u00e9e derri\u00e8re NUMA est de permettre au syst\u00e8me d&rsquo;exploitation d&rsquo;affecter les donn\u00e9es au plus pr\u00e8s du processeur qui en a besoin, afin que les c\u0153urs n&rsquo;aient pas \u00e0 attendre des donn\u00e9es stock\u00e9es loin, ce qui peut nuire consid\u00e9rablement aux performances. Cependant, si le syst\u00e8me n&rsquo;est pas correctement configur\u00e9, ou si votre m\u00e9moire n&rsquo;est pas optimis\u00e9e, vous pourriez tout ralentir involontairement. C&rsquo;est un peu \u00e9trange, mais sur certaines configurations, cela fait plus de diff\u00e9rence qu&rsquo;un c\u0153ur de processeur suppl\u00e9mentaire ; c&rsquo;est pourquoi il est essentiel de comprendre et d&rsquo;ajuster ce point.<\/p>\n<h2>Comment r\u00e9soudre ou am\u00e9liorer les probl\u00e8mes de latence de la m\u00e9moire avec NUMA<\/h2>\n<h3>V\u00e9rifiez les param\u00e8tres de votre BIOS \u2014 V\u00e9rifiez que NUMA est activ\u00e9<\/h3>\n<p>Cela peut para\u00eetre \u00e9vident, mais la premi\u00e8re chose \u00e0 faire est de consulter le BIOS ou le firmware UEFI de votre carte m\u00e8re. Certaines cartes m\u00e8res proposent des options permettant d&rsquo;activer ou de d\u00e9sactiver NUMA ou l&rsquo;entrelacement m\u00e9moire, mais celles-ci sont souvent d\u00e9sactiv\u00e9es par d\u00e9faut ou r\u00e9gl\u00e9es sur \u00ab automatique \u00bb.Red\u00e9marrez votre syst\u00e8me et acc\u00e9dez au BIOS (g\u00e9n\u00e9ralement en appuyant sur <kbd>Del<\/kbd>ou <kbd>F2<\/kbd>au d\u00e9marrage).Recherchez les param\u00e8tres sous \u00ab Avanc\u00e9 \u00bb &gt; \u00ab Configuration CPU \u00bb ou similaire. Recherchez les options <strong>NUMA<\/strong>, <strong>Entrelacement m\u00e9moire<\/strong> ou \u00ab Mode m\u00e9moire \u00bb.Assurez-vous que NUMA est activ\u00e9 ou r\u00e9gl\u00e9 sur \u00ab Auto \u00bb si disponible. Enregistrez vos param\u00e8tres et red\u00e9marrez. Cette \u00e9tape permet au syst\u00e8me d&rsquo;exploitation de reconna\u00eetre votre syst\u00e8me multisocket et de g\u00e9rer la m\u00e9moire en cons\u00e9quence. Sur certaines cartes m\u00e8res, si NUMA n&rsquo;est pas explicitement activ\u00e9, il peut traiter la m\u00e9moire comme un pool uniforme et plat, ce qui r\u00e9duit les performances.<\/p>\n<h3>Ex\u00e9cutez les outils Windows ou Linux pour confirmer la topologie NUMA<\/h3>\n<p>Apr\u00e8s le d\u00e9marrage, il est conseill\u00e9 de v\u00e9rifier si le syst\u00e8me d&rsquo;exploitation reconna\u00eet le syst\u00e8me comme pr\u00e9vu. Sous Windows, utilisez <strong>le Gestionnaire des t\u00e2ches<\/strong> &gt; onglet <strong>Performances &gt; <\/strong><strong>M\u00e9moire<\/strong>. Plusieurs n\u0153uds NUMA devraient s&rsquo;afficher, g\u00e9n\u00e9ralement un par socket de processeur. Pour plus de d\u00e9tails, ex\u00e9cutez <code>Node.js<\/code>des <a href=\"https:\/\/docs.microsoft.com\/en-us\/windows\/server\/remote\/remote-numa-awareness\" rel=\"noopener noreferrer\" target=\"_blank\">commandes PowerShell<\/a> comme <code>Get-VMHost | Select-Object NumNodes<\/code>si vous utilisiez une configuration Hyper-V. Sous Linux, ex\u00e9cutez <code>numactl --hardware<\/code>pour voir combien de n\u0153uds NUMA votre syst\u00e8me reconna\u00eet, ce qui peut vous aider \u00e0 diagnostiquer si le syst\u00e8me d&rsquo;exploitation reconna\u00eet correctement les processeurs et leur m\u00e9moire locale. L&rsquo;objectif est de v\u00e9rifier que le syst\u00e8me d&rsquo;exploitation a une vision claire de la disposition de votre m\u00e9moire ; dans le cas contraire, des r\u00e9glages ou des correctifs du BIOS pourraient \u00eatre n\u00e9cessaires.<\/p>\n<h3>Utiliser les param\u00e8tres ou les commandes du syst\u00e8me d&rsquo;exploitation pour optimiser la localisation de la m\u00e9moire<\/h3>\n<p>Sous Linux, vous pouvez influencer l&rsquo;allocation de m\u00e9moire avec des outils comme <code>numactl<\/code>. Par exemple, lier explicitement des processus ou de la m\u00e9moire \u00e0 des n\u0153uds NUMA sp\u00e9cifiques peut att\u00e9nuer la latence : <\/p>\n<pre><code>numactl --membind=0 myprogram<\/code><\/pre>\n<p> Cela force le processus et sa m\u00e9moire \u00e0 rester sur le n\u0153ud NUMA 0 (par exemple, le socket 0).Sous Windows, d\u00e9finir l&rsquo;affinit\u00e9 ou le placement correct des processus via le Gestionnaire des t\u00e2ches ou des outils tiers peut s&rsquo;av\u00e9rer utile. Parfois, un simple red\u00e9marrage apr\u00e8s des modifications du BIOS permet de r\u00e9soudre les conflits et au syst\u00e8me d&rsquo;exploitation d&rsquo;allouer correctement la m\u00e9moire.<\/p>\n<h3>V\u00e9rifiez la configuration de votre RAM et la disposition physique<\/h3>\n<p>Si vos modules de RAM ne sont pas r\u00e9partis uniform\u00e9ment ou si vous ne savez pas exactement quels modules appartiennent \u00e0 quel socket de processeur, les performances chutent. Pour les configurations multisockets, il est pr\u00e9f\u00e9rable d&rsquo;installer la RAM par paires appari\u00e9es par socket, conform\u00e9ment au manuel de votre carte m\u00e8re. Une RAM mal appari\u00e9e ou mal \u00e9quilibr\u00e9e peut entra\u00eener le syst\u00e8me \u00e0 utiliser des modes d&rsquo;entrelacement par d\u00e9faut, non optimaux pour certaines charges de travail.<\/p>\n<p>Sachez \u00e9galement que les charges de travail lourdes, comme le calcul haute performance ou le rendu sp\u00e9cialis\u00e9, sont plus sensibles \u00e0 la latence NUMA et \u00e0 la m\u00e9moire. Pour une utilisation occasionnelle ou par des joueurs, cela ne fera probablement pas beaucoup de diff\u00e9rence, mais pour les utilisateurs exp\u00e9riment\u00e9s, affiner ces param\u00e8tres peut parfois d\u00e9bloquer des performances ou une stabilit\u00e9 accrues.<\/p>\n<h2>R\u00e9sum\u00e9<\/h2>\n<ul>\n<li>V\u00e9rifiez le BIOS\/UEFI pour vous assurer que NUMA ou l&rsquo;entrelacement de m\u00e9moire est activ\u00e9.<\/li>\n<li>V\u00e9rifiez que le syst\u00e8me d&rsquo;exploitation reconna\u00eet plusieurs n\u0153uds NUMA avec les outils d&rsquo;informations syst\u00e8me.<\/li>\n<li>Utilisez des commandes ou des param\u00e8tres compatibles NUMA pour am\u00e9liorer le processus et le placement de la m\u00e9moire.<\/li>\n<li>\u00c9quilibrez les modules RAM sur les sockets en fonction des instructions de la carte m\u00e8re.<\/li>\n<li>Soyez conscient que les configurations NUMA non optimis\u00e9es peuvent provoquer des ralentissements inattendus, m\u00eame avec des processeurs monstrueux.<\/li>\n<\/ul>\n<h2>Conclure<\/h2>\n<p>G\u00e9rer les probl\u00e8mes de NUMA et de latence m\u00e9moire n&rsquo;est pas une mince affaire, mais quelques recherches et une configuration appropri\u00e9e peuvent faire une diff\u00e9rence notable, surtout sur les serveurs ou stations de travail \u00e0 nombre de c\u0153urs \u00e9lev\u00e9. L&rsquo;essentiel est de s&rsquo;assurer que le micrologiciel de votre syst\u00e8me et le syst\u00e8me d&rsquo;exploitation sont sur la m\u00eame longueur d&rsquo;onde quant \u00e0 la gestion de la m\u00e9moire. Sur certaines configurations, il suffit d&rsquo;activer un commutateur du BIOS ou d&rsquo;ex\u00e9cuter une commande rapide, mais dans d&rsquo;autres cas, il s&rsquo;agit d&rsquo;\u00e9quilibrer la RAM et de mieux comprendre la charge de travail. Si tout est align\u00e9, les charges de travail qui peinaient auparavant pourraient soudainement sembler beaucoup plus r\u00e9actives. Esp\u00e9rons que cela puisse aider quelqu&rsquo;un \u00e0 d\u00e9bloquer un goulot d&rsquo;\u00e9tranglement des performances dont il ignorait l&rsquo;existence.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Parfois, parler de configurations multic\u0153urs et multiprocesseurs donne l&rsquo;impression de plonger dans le grand bain des serveurs, mais honn\u00eatement, c&rsquo;est pertinent m\u00eame pour quelqu&rsquo;un qui<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-1513","post","type-post","status-publish","format-standard","hentry","category-aide"],"_links":{"self":[{"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/posts\/1513","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/comments?post=1513"}],"version-history":[{"count":0,"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/posts\/1513\/revisions"}],"wp:attachment":[{"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/media?parent=1513"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/categories?post=1513"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/help.peacedoorball.blog\/ca\/wp-json\/wp\/v2\/tags?post=1513"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}