今日の急速な情報発展の時代において、サーバーシステムの安定性はますます注目を集めています。サーバーの重要な部分であるメモリは、システム パフォーマンスの問題のボトルネックになることがよくあります。この場合、メモリ使用量のリアルタイム監視は、システムの安定性とパフォーマンスを確保する上で重要な役割を果たします。この記事では、Linux システムのメモリ使用量を監視し、いくつかの実用的なコマンドを使用してシステムの実行状態をリアルタイムで把握する方法を紹介します。
Ubuntu 18.04 サーバー プラットフォーム [1] でデモを行いますが、選択したディストリビューションで使用可能なすべてのコマンドが見つかるはずです。さらに良いことに、何もインストールする必要はありません (これらのツールのほとんどは Linux システムに含まれているため)。
そうは言っても、仕事に取り掛かりましょう。
######上######最も一般的に使用されるツールから始めたいと思います。 top コマンドは、実行中のシステムのリアルタイムの動的ビューを提供し、各プロセスのメモリ使用量をチェックします。これは、同じコマンドが異なる量のメモリを消費している複数の例を簡単に確認できるため、重要です。モニターのないサーバーではこれを確認できませんが、Chrome を開くとシステムの速度が低下することに気づきました。 top コマンドを実行して、Chrome で複数のプロセスが実行されていることを確認します (タブごとに 1 つ - 図 1)。
図 1: 複数の Chrome プロセスが上部のコマンドに表示されます。
複数のプロセスを表示するアプリは Chrome だけではありません。図 1 に Firefox があるのがわかりますか?これが Firefox のメイン プロセスであり、Web コンテンツ プロセスは開いているタブです。出力の上部にシステム統計が表示されます。私のマシン (System76 Leopard Extreme[2]) には合計 16GB の利用可能な RAM があり、そのうち 10GB 強が使用中です。その後、リストを並べ替えて、各プロセスが使用しているメモリの割合を確認できます。 top 開始するのに最適な場所の 1 つは、制御不能になった可能性があるサービスのプロセス ID 番号 (PID) を検出することです。これらの PID を使用すると、問題のあるタスクのトラブルシューティング (または強制終了) を行うことができます。
top にさらに分かりやすいメモリ情報を表示させたい場合は、コマンド top -o %MEM を使用します。これにより、top はすべてのプロセスを、プロセスが使用するメモリによって並べ替えます (図 2)。
図 2: トップ コマンドでのメモリ使用量によるプロセスの並べ替え
top コマンドを使用すると、使用されているスワップ領域の量に関するリアルタイムの最新情報も得られます。 ######無料###### ただし、場合によっては、top コマンドがニーズを満たさない場合があります。システムの空きメモリと使用済みメモリを確認したいだけかもしれません。このため、Linux には無料のコマンドもあります。無料のコマンドでは次のように表示されます:
利用可能な物理メモリと使用されている物理メモリの合計システム内のスワップ メモリの合計量
カーネルによって使用されるバッファとキャッシュ
図 4: より読みやすい形式でのフリーのコマンド出力。
もちろん、システムが非常に新しい場合は、free -g などの -g オプション (GB 単位) を使用することをお勧めします。メモリの合計量を知る必要がある場合は、free -mt のように -t オプションを追加できます。これにより、各列のメモリの合計量が単純に計算されます (図 5)。
図 5: 空きメモリ列を提供します。
vmstat
もう 1 つの非常に便利なツールは vmstat です。この特定のコマンドは、仮想メモリ統計をレポートするためのちょっとしたトリックです。 vmstat コマンドは次について報告します:
dmidecode コマンドを実行するには、sudo 権限が必要です。そこで、コマンド sudo dmidecode -t 17 を入力します。このコマンドの出力 (図 7) は、すべてのメモリ タイプのデバイスの情報を表示するため、非常に長くなる可能性があります。したがって、上下にスクロールできない場合は、そのコマンドの出力を sudo dmidecode -t 17> dmi_infoI のようにファイルに送信するか、sudo dmidecode |less のようにless コマンドに渡す必要がある場合があります。
図 7: dmidecode コマンドの出力。
/proc/meminfo
図 8:less /proc/meminfo コマンドの出力。
/proc/meminfo について知っておくべきこと: これは実際のファイルではありません。対照的に、/proc/meminfo は、システムに関するリアルタイムの動的情報を含む仮想ファイルです。特に、次の値を確認する必要があります:
全メモリ (MemTotal)
空きメモリ (MemFree)
バッファ
以上がLinux メモリ監視: システムの実行ステータスをリアルタイムで把握します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。