Робота в мережі SONiC: Використання системної пам'яті в SONiC - "бафф/доступно"

Summary: У цій статті пояснюється значення полів "buff/cache" і "avail Mem" у видачі "top" у рідному CLI 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

  • Питання 1: Що таке бафф/кеш?

    "buff/cache" — це обсяг пам'яті, що використовується для буферів файлової системи та кешу. Таке використання пам'яті є важливою частиною того, як Linux керує та оптимізує продуктивність системи. Давайте розберемося, що означає "баф/кеш":

    Буферів:
    Буфери в цьому контексті вказують на частину системної пам'яті (ОЗП), яка використовується для тимчасового зберігання даних, які зчитуються з диска або записуються на диск. Наприклад, коли програма зчитує дані з файлу, дані спочатку завантажуються в буфер пам'яті. Буфери допомагають покращити продуктивність вводу/виводу на диску, оскільки читання або запис у оперативну пам'ять відбувається швидше, ніж доступ до фізичного диска. Буфери також можуть гарантувати, що дані записуються на диск ефективніше, зменшуючи кількість операцій вводу/виводу на диску.

    Кеш:
    Кеш у цьому контексті вказує на частину пам'яті, яка використовується для зберігання даних із файлів і каталогів, до яких часто звертаються. Linux використовує механізм під назвою «кеш сторінок» для кешування даних із файлів і каталогів, які були нещодавно прочитані або записані. Ці кешовані дані зберігаються в пам'яті, щоб у разі повторної потреби в тих самих даних їх можна було швидко отримати з оперативної пам'яті, а не зчитувати з повільнішого дискового сховища. Цей кеш може значно підвищити продуктивність системи за рахунок зменшення вимоги до доступу до диска для часто використовуваних даних.

    Коли програмам або операційній системі потрібно більше пам'яті для активних процесів, буферна/кеш-пам'ять може бути швидко звільнена, щоб задовольнити ці потреби.

    Команда «top» відображає це значення. Він також відображає поточний стан системи, використання процесора, використання пам'яті.

    ПРИМІТКА. Команда "top" функціонує лише в рідному CLI SONiC, а не в MF-CLI від Dell (MF-CLI - це користувацький CLI Dell "management framework"). Рідний CLI – це інтерфейс командного рядка, який з'являється при першому завантаженні комутатора SONiC. MF-CLI досягається після введення "sonic-cli" у початковий рідний cli.
    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
  • Питання 2: Який поріг високого використання буферної/кеш-пам'яті?

    Буфер/кеш-пам'ять використовується як кеш для зберігання даних, до яких часто звертаються. Звідси не виключено, що значна частина доступної оперативної пам'яті в кінцевому підсумку виділяється для цієї мети. Слід зазначити, що використання буферної/кеш-пам'яті є дуже динамічним і постійно змінюється залежно від потреб системи. Тому цінніше стежити за загальним використанням пам'яті (або відповідним «avail Mem») і стежити за тим, щоб у системі було достатньо вільної пам'яті для запуску додатків і процесів.

    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

    Корисна команда для вираження відсотка системної оперативної пам'яті, доступної для використання на перемикачі Dell Enterprise SONiC:

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

    Ця команда ділить "avail Mem" на "MiB Mem total".

    Ось ще один приклад порівняння наведених вище команд і вказівка їх взаємозв'язків для довідки:

    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.