ネットワーキングSONiC: SONiCのシステム メモリー使用量 - 「buff/available」
Summary: この記事では、Dell Networking SONiCのネイティブCLIの「top」出力にある「buff/cache」および「avail Mem」フィールドの意味について説明します。
Instructions
-
質問1: バフ/キャッシュとは何ですか?
「buff/cache」は、ファイルシステムのバッファとキャッシュに使用されるメモリの量です。このメモリ使用量は、Linuxがシステムパフォーマンスを管理および最適化する方法の重要な部分です。「バフ/キャッシュ」の意味を分解してみましょう。
バッファー:
このコンテキストでのバッファーは、ディスクからの読み取りまたはディスクへの書き込み中のデータを一時的に保持するために使用されるシステム メモリー(RAM)の一部を指します。たとえば、プログラムがファイルからデータを読み取る場合、データは最初にメモリ内のバッファーに読み込まれます。物理ディスクにアクセスするよりもRAMの読み取りまたは書き込みが高速であるため、バッファーを使用するとディスクI/Oパフォーマンスが向上します。また、バッファーを使用すると、データをより効率的にディスクに書き込むことができ、ディスク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:~$