網路 SONiC:SONiC 中的系統記憶體使用量 - 「buff/available」
Summary: 本文說明 Dell Networking SONiC 原生 CLI 中「top」輸出中「buff/cache」和「avail Mem」欄位的含義。
Instructions
-
問題1:什麼是增益/緩存?
“buff/cache”是用於文件系統緩衝區和緩存的內存量。記憶體使用量是 Linux 管理和優化系統性能的關鍵部分。讓我們分解一下「buff/cache」的含義:
緩衝區:
此上下文中的緩衝區表示系統記憶體 (RAM) 的一部分,用於臨時保存從磁碟讀取或寫入磁碟的數據。例如,當程式從檔中讀取數據時,數據首先載入到記憶體中的緩衝區中。緩衝區有助於提高磁碟 I/O 性能,因為讀取或寫入 RAM 比存取實體磁碟更快。緩衝區還可以確保更有效地將數據寫入磁碟,從而減少磁碟 I/O 操作的次數。快取:
在此上下文中,緩存指示用於存儲來自文件和目錄中的頻繁訪問數據的記憶體部分。Linux 使用一種稱為「頁面緩存」的機制來緩存最近讀取或寫入的檔和目錄中的數據。此緩存數據保存在記憶體中,以便如果再次需要相同的數據,可以從RAM中快速檢索它,而不是從較慢的磁碟存儲中讀取它。此快取記憶體可減少存取磁碟中常用資料的需求,大幅改善系統效能。當應用程式或操作系統需要更多記憶體用於活動進程時,可以快速釋放緩衝區/緩存記憶體以滿足這些需求。
「top」命令顯示此值。同時也會顯示系統的目前狀態、CPU 使用率、記憶體使用量。
注意:「top」命令僅可在 SONiC 的原生 CLI 中運作,而不能在 Dell 的 MF-CLI (MF-CLI 是 Dell 的自訂「管理框架」cli)。原生 CLI 是首次啟動 SONiC 交換器時顯示的命令行介面。在初始原生 cli 中輸入「sonic-cli」後,即連線到 MF-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:高緩衝區/緩存記憶體利用率的閾值是多少?
緩衝/快取記憶體可用作儲存經常存取資料的快取記憶體。因此,有很大一部分可用RAM最終可能被分配用於此目的。需要注意的是,緩衝區/緩存記憶體的使用是高度動態的,並且會根據系統需求而不斷變化。因此,監控整體記憶體使用方式(或相應的“可用記憶體”)並確保系統有足夠的可用記憶體來運行應用程式和進程更有價值。
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 交換器上可用的系統 RAM 百分比:
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:~$