Sítě SONiC: Využití systémové paměti v SONiC – "buff/available"
Summary: Tento článek vysvětluje význam polí "buff/cache" a "avail Mem" ve výstupu "top" v nativním rozhraní příkazového řádku rozhraní Dell Networking SONiC.
Instructions
-
Otázka 1: Co je buff/keš?
"buff/cache" je velikost paměti používané pro vyrovnávací paměti a mezipaměť systému souborů. Toto využití paměti je klíčovou součástí toho, jak Linux spravuje a optimalizuje výkon systému. Pojďme si rozebrat, co znamená "buff/cache":
Vyrovnávací paměti:
Vyrovnávací paměti v tomto kontextu označují část systémové paměti (RAM), která se používá k dočasnému uložení dat čtených nebo zapisovaných na disk. Když například program čte data ze souboru, data se nejprve načtou do vyrovnávací paměti v paměti. Vyrovnávací paměti pomáhají zlepšit výkon vstupně-výstupních operací disku, protože čtení nebo zápis do paměti RAM je rychlejší než přístup k fyzickému disku. Vyrovnávací paměti mohou také zajistit efektivnější zápis dat na disk, což snižuje počet vstupně-výstupních operací disku.Mezipaměť:
Mezipaměť v tomto kontextu označuje část paměti, která se používá k ukládání často používaných dat ze souborů a adresářů. Linux používá mechanismus zvaný "stránkovací mezipaměť" k ukládání dat ze souborů a adresářů, do kterých byly nedávno přečteny nebo zapsány. Tato data uložená v mezipaměti jsou uložena v paměti, takže pokud jsou stejná data potřeba znovu, lze je rychle načíst z paměti RAM namísto jejich načítání z pomalejšího diskového úložiště. Tato mezipaměť může výrazně zlepšit výkon systému tím, že snižuje požadavky na přístup k disku pro často používaná data.Když aplikace nebo operační systém potřebují více paměti pro aktivní procesy, lze vyrovnávací paměť / mezipaměť rychle uvolnit, aby se těmto potřebám vyhovělo.
Příkaz "top" zobrazí tuto hodnotu. Zobrazuje také aktuální stav systému, využití procesoru a využití paměti.
POZNÁMKA: Příkaz "top" funguje pouze v nativním rozhraní příkazového řádku SONiC, nikoli v rozhraní MF-CLI společnosti Dell (mf-cli je vlastní rozhraní příkazového řádku "Management Framework" společnosti Dell). Nativní rozhraní příkazového řádku je rozhraní příkazového řádku, které se zobrazí při prvním spuštění přepínače SONiC. Do rozhraní MF-CLI se dostanete po zadání příkazu "sonic-cli" do počátečního nativního rozhraní příkazového řádku.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
-
Otázka 2: Jaká je prahová hodnota pro vysoké využití vyrovnávací paměti?
Vyrovnávací paměť se používá jako mezipaměť pro ukládání často používaných dat. Je tedy možné, že značná část dostupné paměti RAM bude nakonec přidělena pro tento účel. Je třeba poznamenat, že využití vyrovnávací paměti/mezipaměti je vysoce dynamické a neustále se mění v závislosti na požadavcích systému. Proto je cennější sledovat celkové využití paměti (nebo odpovídající "avail Mem") a zajistit, aby měl systém dostatek volné paměti pro spouštění aplikací a procesů.
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
Užitečný příkaz k vyjádření procentuálního podílu systémové paměti RAM dostupné pro přepínač Dell Enterprise SONiC:
free | grep Mem | awk '{print $7/$2 * 100 }'Tento příkaz vydělí příkaz "avail Mem" hodnotou "MiB Mem total".
Zde je další příklad, který porovnává výše uvedené příkazy a uvádí jejich vztahy pro vaši referenci:
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:~$