Sieć SONiC: Użycie pamięci systemowej w systemie SONiC — "buff/available"
Summary: W tym artykule wyjaśniono znaczenie pól "buff/cache" i "avail Mem" w danych wyjściowych "top" w natywnym interfejsie wiersza poleceń SONiC systemu Dell Networking.
Instructions
-
Pytanie 1: Co to jest buff/cache?
"buff/cache" to ilość pamięci używanej przez i pamięć podręczną systemu plików. To użycie pamięci jest kluczowym elementem sposobu, w jaki Linux zarządza i optymalizuje wydajność systemu. Przeanalizujmy, co oznacza "buff/cache":
:
Bufor w tym kontekście oznacza część pamięci systemowej (RAM) używaną do tymczasowego przechowywania danych, które są odczytywane lub zapisywane na dysku. Na przykład, gdy program odczytuje dane z pliku, dane są najpierw ładowane do bufora w pamięci. Bufor pomaga zwiększyć wydajność we/wy dysku, ponieważ odczyt lub zapis w pamięci RAM jest szybszy niż dostęp do dysku fizycznego. Bufor może również zapewnić wydajniejsze zapisywanie danych na dysku, zmniejszając liczbę operacji we/wy dysku.Pamięć podręczna:
Pamięć podręczna w tym kontekście wskazuje część pamięci używaną do przechowywania często używanych danych z plików i katalogów. Linux używa mechanizmu zwanego "pamięcią podręczną strony" do buforowania danych z plików i katalogów, które zostały ostatnio odczytane lub zapisane. Te dane w pamięci podręcznej są przechowywane w pamięci, dzięki czemu jeśli te same dane są potrzebne ponownie, można je szybko pobrać z pamięci RAM zamiast odczytywać je z wolniejszej pamięci dyskowej. Ta pamięć podręczna może znacznie poprawić wydajność systemu, zmniejszając zapotrzebowanie na dostęp do dysku w przypadku często używanych danych.Gdy aplikacje lub system operacyjny potrzebują więcej pamięci dla aktywnych procesów, można szybko zwolnić pamięć buforową/podręczną, aby zaspokoić te potrzeby.
Polecenie "top" wyświetla tę wartość. Wyświetla również bieżący stan systemu, użycie procesora, wykorzystanie pamięci.
UWAGA: Polecenie "top" działa tylko w natywnym interfejsie wiersza poleceń systemu SONiC, a nie w interfejsie MF-CLI FIRMY DELL (MF-CLI to niestandardowy interfejs CLI "struktury zarządzania" firmy Dell). Natywny interfejs wiersza poleceń to interfejs wiersza poleceń, który pojawia się przy pierwszym uruchomieniu przełącznika SONiC. MF-CLI jest osiągany po wpisaniu "sonic-cli" w początkowym natywnym interfejsie wiersza poleceń.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
-
Pytanie 2: Jaki jest próg wysokiego wykorzystania pamięci buforowej/podręcznej?
Pamięć buforowa/podręczna jest używana jako pamięć podręczna do przechowywania często używanych danych. W związku z tym możliwe jest, że znaczna część dostępnej pamięci RAM zostanie przeznaczona na ten cel. Należy zauważyć, że użycie pamięci buforowej/podręcznej jest bardzo dynamiczne i stale zmienia się w zależności od zapotrzebowania systemu. Dlatego bardziej wartościowe jest monitorowanie ogólnego użycia pamięci (lub odpowiadającej mu pamięci dostępnej) i upewnienie się, że system ma wystarczającą ilość wolnej pamięci do uruchamiania aplikacji i procesów.
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
Przydatne polecenie umożliwiające wyrażenie procentowej ilości pamięci RAM dostępnej do użytku w przełączniku Dell Enterprise SONiC:
free | grep Mem | awk '{print $7/$2 * 100 }'To polecenie dzieli "avail Mem" przez "MiB Mem total".
Oto kolejny przykład porównujący powyższe polecenia i wskazujący ich relacje w celach informacyjnych:
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:~$