Sistema de rede SONiC: Uso da memória do sistema no SONiC - "buff/available"

Summary: Este artigo explica o significado dos campos "buff/cache" e "avail Mem" na saída "top" na CLI nativa do Dell Networking SONiC.

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Instructions

  • Pergunta 1: O que é buff/cache?

    "buff/cache" é a quantidade de memória usada para buffers e cache do file system. Esse uso de memória é uma parte crucial de como o Linux gerencia e otimiza o desempenho do sistema. Vamos detalhar o que significa "buff/cache":

    Buffers:
    Nesse contexto, os buffers indicam uma parte da memória do sistema (RAM) usada para armazenar temporariamente os dados que estão sendo lidos ou gravados no disco. Quando um programa lê dados de um arquivo, por exemplo, os dados são carregados primeiro em um buffer na memória. Os buffers ajudam a melhorar o desempenho de E/S do disco, pois a leitura ou gravação na RAM é mais rápida do que acessar o disco físico. Os buffers também podem garantir que os dados sejam gravados no disco com mais eficiência, reduzindo o número de operações de E/S de disco.

    Cache:
    Cache, nesse contexto, indica a porção da memória usada para armazenar dados acessados com frequência de arquivos e diretórios. O Linux usa um mecanismo chamado "cache de página" para armazenar em cache os dados de arquivos e diretórios que foram lidos ou gravados recentemente. Esses dados armazenados em cache são mantidos na memória para que, se os mesmos dados forem necessários novamente, possam ser recuperados rapidamente da RAM em vez de lê-los do armazenamento em disco mais lento. Esse cache pode melhorar significativamente o desempenho do sistema reduzindo a necessidade de acessar o disco para dados usados com freqüência.

    Quando os aplicativos ou o sistema operacional precisam de mais memória para processos ativos, a memória cache/buffer pode ser liberada rapidamente para acomodar essas necessidades.

    O comando "top" exibe esse valor. Ele também exibe o status atual do sistema, uso da CPU e uso da memória.

    Nota: O comando "top" só funciona na CLI nativa do SONiC, e não na MF-CLI da Dell (MF-CLI é a CLI da "estrutura de gerenciamento" personalizada da Dell). A CLI nativa é a interface de linha de comando que aparece quando você inicializa pela primeira vez um switch SONiC. A MF-CLI é alcançada depois de digitar "sonic-cli" na CLI nativa inicial.
    admin@sonic:~$ top
    top - 16:43:51 up 8 days, 18:15,  1 user,  load average: 1.54, 1.50, 1.51
    Tasks: 365 total,   2 running, 363 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  2.8 us,  4.2 sy,  0.0 ni, 93.1 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :  15482.2 total,  11292.8 free,   2299.6 used,   1889.8 buff/cache 
    MiB Swap:      0.0 total,      0.0 free,      0.0 used.  12965.1 avail Mem
  • Pergunta 2: Qual é o limite para alta utilização de memória cache/buffer?

    A memória buffer/cache é usada como um cache para armazenar dados acessados com frequência. Portanto, é possível que uma parcela significativa da RAM disponível acabe alocada para essa finalidade. O que deve ser observado é que o uso de buffer/memória cache é altamente dinâmico e muda constantemente com base na demanda do sistema. Portanto, é mais valioso monitorar o uso geral da memória (ou o "mem disponível" correspondente) e garantir que o sistema tenha memória livre suficiente para executar aplicativos e processos.

    top - 14:17:13 up 207 days,  1:59,  1 user,  load average: 2.66, 2.19, 2.03
    Tasks: 386 total,   2 running, 384 sleeping,   0 stopped,   0 zombie
    %Cpu(s): 12.5 us,  9.7 sy,  0.0 ni, 77.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
    MiB Mem :  15482.6 total,   8571.4 free,   2692.5 used,   4218.8 buff/cache
    MiB Swap:      0.0 total,      0.0 free,      0.0 used.  12773.1 avail Mem   <--- system's total available RAM

    Um comando útil para expressar a porcentagem de RAM do sistema disponível para uso em um switch Dell Enterprise SONiC:

    free | grep Mem | awk '{print $7/$2 * 100 }'

    Este comando divide "avail Mem" por "MiB Mem total".

    Aqui está outro exemplo comparando os comandos acima e indicando suas relações para sua referência:

    admin@Leaf3B:~$ top
    top - 21:49:49 up  1:25,  1 user,  load average: 0.59, 0.60, 0.64
    Tasks: 329 total,   1 running, 328 sleeping,   0 stopped,   0 zombie
    %Cpu(s):  7.9 us,  4.2 sy,  0.0 ni, 87.5 id,  0.0 wa,  0.0 hi,  0.4 si,  0.0 st
    KiB Mem : 15928852 total, 12074024 free,  2439884 used,  1414944 buff/cache
    KiB Swap:        0 total,        0 free,        0 used. 13120520 avail Mem
    
      PID USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND
    21685 root      20   0  172992  33116   8436 S  52.9  0.2   3:16.11 python3.6
     1278 root      20   0   92872  15116   3264 S  17.6  0.1   2:24.49 redis-serv+
     5366 admin     20   0   43540   3812   3020 R  17.6  0.0   0:00.03 top
    18469 root      20   0 1643080 451968  78276 S  11.8  2.8   8:17.32 syncd
     1097 root      20   0  136440  15188   5912 S   5.9  0.1   0:07.75 watchdogd
    19856 admin     20   0  334880  61900  35296 S   5.9  0.4   0:00.44 docker
    20985 root      20   0  159488  18616   5036 S   5.9  0.1   0:19.22 xcvrd
        1 root      20   0   57768   7820   5544 S   0.0  0.0   0:32.58 systemd
        2 root      20   0       0      0      0 S   0.0  0.0   0:00.00 kthreadd
        3 root      20   0       0      0      0 S   0.0  0.0   0:00.91 ksoftirqd/0
        4 root      20   0       0      0      0 S   0.0  0.0   0:01.90 kworker/0:0
        5 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 kworker/0:+
        7 root      20   0       0      0      0 S   0.0  0.0   0:06.93 rcu_sched
        8 root      20   0       0      0      0 S   0.0  0.0   0:00.00 rcu_bh
        9 root      rt   0       0      0      0 S   0.0  0.0   0:00.39 migration/0
       10 root       0 -20       0      0      0 S   0.0  0.0   0:00.00 lru-add-dr+
       11 root      rt   0       0      0      0 S   0.0  0.0   0:00.00 watchdog/0
    
    admin@Leaf3B:~$ free
                  total        used        free      shared  buff/cache   available
    Mem:       15928852     2438836    12074940       36060     1415076    13121528
    Swap:             0           0           0
    admin@Leaf3B:~$ free | grep Mem | awk '{print $7/$2 * 100 }'
    82.3662
    admin@Leaf3B:~$

 

Affected Products

Enterprise SONiC Distribution
Article Properties
Article Number: 000215960
Article Type: How To
Last Modified: 17 شباط 2025
Version:  3
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.