Introduction

    Sur le routeur de services d'agrégation 9000 (ASR9K) exécutant Enhanced XR (eXR), également connu sous le nom de 64 bits XR, version 6.2.1 et ultérieure, la commande « show memory summary » n'affiche pas toute la mémoire interne documentée sur la fiche technique correspondante, ce qui peut perturber certains clients.

    Détails du problème

    Ci-dessous, nous utiliserons un ASR9901, exécutant 6.4.2, comme exemple.

    Selon la fiche technique, le processeur de routage intégré (RP) dispose de 32 gigaoctets (Go) de mémoire vive (RAM).

    RP/0/RSP0/CPU0:R1#show platform
    Node              Type                       State             Config state
    --------------------------------------------------------------------------------
    0/RSP0/CPU0       ASR9901-RP(Active)         IOS XR RUN        NSHUT
    0/FT0             ASR-9901-FAN               OPERATIONAL       NSHUT
    0/FT1             ASR-9901-FAN               OPERATIONAL       NSHUT
    0/FT2             ASR-9901-FAN               OPERATIONAL       NSHUT
    0/0/CPU0          ASR9901-LC                 IOS XR RUN        NSHUT

    « Show memory summary » n'affiche qu'environ 27 Go, bien que le système reconnaisse que la mémoire totale est de 32 Go sous « admin show system resources ».

    RP/0/RSP0/CPU0:R1#show memory summary
    node:      node0_RSP0_CPU0
    ------------------------------------------------------------------
     Physical Memory: 27089M total (22185M available)
     Application Memory : 27089M (22013M available)
     Image: 4M (bootram: 0M)
     Reserved: 0M, IOMem: 0M, flashfsys: 0M
     Total shared window: 133M
     RP/0/RSP0/CPU0:R1#admin show system resources
    Node                    Physical                        Application              Boot Partition         CPUs    Shmwin
                    Total   Available       Cached  Total   Available       Cached  Total   Available
    0/RSP0-Host     32415M^ 512M^           135M    31655M^ 500M^           132     923M    542M            4       N/A
    0/RSP0-Admin    1940M   1072M           144M    1894M   1047M           141     2308M   1252M           1       N/A
    0/RSP0-XR       27739M  22548M          999M    27089M  22020M          975     N/A     N/A             2       6655M
    <snip>

    Le même comportement peut être observé sur d'autres périphériques ASR9K, par exemple : ASR9010 avec eXR 6.2.3
    En regardant la fiche technique, le A9K-RSP880-TR doit disposer de 16 Go de RAM.

    RP/0/RSP0/CPU0:R2#show platform
    Node              Type                       State             Config state
    -------------------------------------------------------------------------------
    0/RSP0/CPU0       A9K-RSP880-TR(Active)      IOS XR RUN        NSHUT
    0/FT0             ASR-9010-FAN-V2            OPERATIONAL       NSHUT
    0/FT1             ASR-9010-FAN-V2            OPERATIONAL       NSHUT
    0/1/CPU0          A9K-MOD400-TR              IOS XR RUN        NSHUT
    0/1/0             A9K-MPA-20X10GE            OK                
    0/1/1             A9K-MPA-1X100GE            OK               
    0/PT0             A9K-AC-PEM-V3              OPERATIONAL       NSHUT
    0/PT1             A9K-AC-PEM-V3              OPERATIONAL       NSHUT


    « Show memory summary » indique 12,5 Go et « admin show system resource » indique 16 Go

     RP/0/RSP0/CPU0:R2#show memory summary
    node:      node0_RSP0_CPU0
    ------------------------------------------------------------------
     Physical Memory: 12496M total (8465M available)
     Application Memory : 12496M (8287M available)
     Image: 4M (bootram: 0M)
     Reserved: 0M, IOMem: 0M, flashfsys: 0M
     Total shared window: 128M
     RP/0/RSP0/CPU0:R2#admin show system resou
    Node                    Physical                        Application              Boot Partition         CPUs    Shmwin
                    Total   Available       Cached  Total   Available       Cached  Total   Available
    0/RSP0-Host     16217M^ 276M^           29M     15837M^ 271M^           28      923M    592M            8       N/A
    0/RSP0-Admin    1940M   1158M           78M     1894M   1131M           76      2308M   1451M           1       N/A
    0/RSP0-XR       12796M  8488M           888M    12496M  8288M           867     N/A     N/A             6       3071M
    0/1-Host        24491M  11510M          127M    23917M  11241M          124     923M    592M            6       N/A
    0/1-Admin       1008M   471M            90M     984M    460M            88      2308M   1528M           1       N/A
    0/1-XR          10948M  5902M           2343M   10691M  5764M           2288    N/A     N/A             5       3071M

    Cependant, si nous vérifions le XR 32 bits, il montre la mémoire physique totale comme documenté dans la fiche technique :

    RP/0/RSP0/CPU0:R3#show memory summary
    Physical Memory: 16384M total (12600M available)
     Application Memory : 16043M (12600M available)
     Image: 100M (bootram: 100M)
     Reserved: 224M, IOMem: 0, flashfsys: 0
     Total shared window: 51M

    RP/0/RSP0/CPU0:R3#show platform
    Node            Type                      State            Config State
    -----------------------------------------------------------------------------
    0/RSP0/CPU0     A99-RSP-TR(Active)        IOS XR RUN       PWR,NSHUT,MON
    0/RSP1/CPU0     A99-RSP-TR(Standby)       IOS XR RUN       PWR,NSHUT,MON
    0/1/CPU0        A9K-MOD400-SE             IOS XR RUN       PWR,NSHUT,MON
    0/1/0           A9K-MPA-20X10GE           OK               PWR,NSHUT,MON
    0/1/1           A9K-MPA-2X100GE           OK               PWR,NSHUT,MON
    0/2/CPU0        A99-8X100GE-SE            IOS XR RUN       PWR,NSHUT,MON
    0/4/CPU0        A9K-MOD400-TR             IOS XR RUN       PWR,NSHUT,MON
    0/4/0           A9K-MPA-8X10GE            OK               PWR,NSHUT,MON
    0/4/1           A9K-MPA-2X40GE            OK               PWR,NSHUT,MON

    Analyse

    À partir de la version 6.2.1, eXR sur ASR9K utilisera le modèle de virtualisation de machine virtuelle (VM), en passant du modèle de conteneur Linux (LXC) utilisé dans les versions 6.1.2 et 6.1.3.

    Les conteneurs peuvent stocker beaucoup plus d'applications dans un seul serveur physique qu'une machine virtuelle (VM).

    Les machines virtuelles peuvent occuper un grand nombre de ressources système. Chaque machine virtuelle exécute non seulement une copie complète d'un système d'exploitation, mais également une copie virtuelle de tout le matériel que le système d'exploitation doit exécuter. Cela peut augmenter le nombre de cycles de mémoire et de CPU. En revanche, un conteneur ne nécessite qu'un système d'exploitation, des programmes et bibliothèques de prise en charge et des ressources système suffisants pour exécuter un programme spécifique. Cependant, les machines virtuelles offrent beaucoup plus de flexibilité pour prendre en charge des fonctions telles que In-Service Software Upgrade (ISSU).

    Étant donné que les conteneurs Linux partagent les ressources physiques et le noyau de l'hôte, alors que chaque machine virtuelle nécessite son propre système d'exploitation et son propre matériel virtualisé, cela expliquerait pourquoi chaque machine virtuelle se voit attribuer une quantité spécifique de ressources de l'hôte global, ce qui a pour conséquence que le résumé show memory n'affiche pas la mémoire physique totale sur les versions eXR 6.2.1 et ultérieures. Les conteneurs Linux peuvent également avoir une limite pour la mémoire allouée telle qu'elle apparaît sur les plates-formes NCS5000 et NCS5500 et les mêmes comportements pour la CLI « show memory summary » seront observés sur ces plates-formes.