Linux は Windows とは異なります。特にサーバー環境では、常にグラフィカル システム インターフェイスが表示されるわけではありません。Linux 管理者として、メモリ、CPU、ディスク容量などの使用可能なリソースと使用済みリソースを確認する方法を知っておくことは重要です。システムを最適なレベルで実行するためにシステム上のリソースを使用しすぎているアプリケーションがある場合は、それを見つけて修正する必要があります。Linux でメモリ使用量を表示する方法を見てみましょう。
1. free コマンドを使用してメモリ使用量を表示する
Free コマンドは、Linux 管理者が広く使用する最も強力なコマンドです。ただし、「/proc/meminfo」ファイルと比較すると、提供される情報はほとんどありません。Free コマンドは、システムの空きおよび使用中の物理メモリとスワップ メモリの合計量、およびカーネルによって使用されているバッファとキャッシュを表示します。
[root@sharplee creatfile]# free -m
以下は、図のパラメーター フィールドの意味です。
- total: 合計メモリ
- used: 実行中のプロセスが使用するメモリ (使用済み = 合計 - フリー - バフ/キャッシュ)
- free: 未使用メモリ (free= 合計 - 使用済み - バフ/キャッシュ)
- shared: 複数のプロセスで共有されるメモリ
- buffers: カーネルがプロセス キュー要求で動作するために予約されているメモリ
- cache: 最近使用したファイルを RAM に保持するページ キャッシュのサイズ
- バフ/キャッシュ: バッファ + キャッシュ
- available: スワップせずに新しいアプリケーションを起動するために使用できるメモリの推定量。
2. /proc/meminfo ファイルを使用してメモリ使用量を表示する
「/proc/meminfo」ファイルは、メモリ使用量に関するさまざまなリアルタイム情報を含む準ファイルです。メモリ統計をキロバイト単位で表示しますが、そのほとんどは少しわかりにくいものです。ただし、メモリ使用量に関する有用な情報が含まれています。
[root@sharplee creatfile]# cat /proc/meminfo
3. vmstat コマンドを使用してメモリ使用量を表示します
vmstat コマンドは、仮想メモリの統計を報告するためのもう 1 つの便利なツールです。vmstat は、プロセス、メモリ、ページング、ブロック IO、ディスク、および CPU 機能に関する情報を報告します。vmstat は特別な権限を必要とせず、システムのボトルネックを特定するのに役立ちます。
[root@sharplee creatfile]# vmstat
以下は、上記のコマンドの説明です。
手続き
- r: 実行可能なプロセスの数 (実行中または実行待ち)
- b: 中断できないスリープ状態のプロセスの数
メモリー
- swpd: 仮想メモリの使用量
- free: 空きメモリの量
- buff: バッファとして使用されるメモリの量
- cache: キャッシュとして使用されるメモリの量
- inact: 非アクティブなメモリの量
- active: アクティブなメモリの量
スワップ
- si: ディスクからスワップされたメモリの量 (/s)
- so: ディスクにスワップされたメモリの量 (/s)
IO
- bi: ブロック デバイスから受信したブロック (ブロック/秒)
- bo: ブロックデバイスに送信されたブロック (ブロック/秒)
システム
- in: クロックを含む 1 秒あたりの割り込み数
- cs: 1 秒あたりのコンテキスト スイッチの数
CPU : これらは合計 CPU 時間のパーセンテージです
- us: カーネル以外のコードの実行に費やした時間 (ユーザー時間)
- sy: カーネル コードの実行にかかった時間 (システム時間)
- id: アイドル時間。Linux 2.5.41 より前では、これには IO 待機時間が含まれていました
- wa: IO の待機に費やされた時間。Linux 2.5.41 より前、idle に含まれる
- st: 仮想マシンから盗まれた時間。Linux 2.6.11 より前、不明
詳細を表示するには、次のコマンドを実行します。
[root@sharplee creatfile]# vmstat -s
4. smem コマンドを使用してメモリ使用量を表示します。
smem は、多数の Linux システムのメモリ使用量に関するレポートを提供するツールです。既存のツールとは異なり、smem は比例セット サイズ (PSS)、一意セット サイズ (USS)、および常駐セット サイズ (RSS) を報告できます。プロポーショナル セット サイズ (PSS): 仮想メモリ システム内のライブラリとアプリケーションによって使用されるメモリの量を指します。Unique Set Size (USS): 非共有メモリは USS (Unique Set Size) として報告されます。常駐セット サイズ (RSS): 常駐セット サイズ (RSS) として知られる、物理メモリ (多くの場合、複数のアプリケーション間で共有される) 使用量の標準的な尺度は、メモリ使用量を大幅に過大評価します。注: 以下のコマンドを実行してもプロンプトが見つからない場合は、「yum install smem installation」を実行してください。
[root@sharplee creatfile]# smem -tk
5. top コマンドを使用してメモリ使用量を表示します。
top コマンドは、Linux 管理者が Linux システム上のプロセスのリソース使用状況を理解し、表示するために最も一般的に使用されるコマンドの 1 つです。システムの合計メモリ、現在のメモリ使用量、使用可能なメモリ、およびバッファによって使用されている合計メモリが表示されます。さらに、システムの合計スワップ メモリ、現在のスワップ使用量、使用可能なスワップ メモリ、および合計キャッシュ メモリが表示されます。
[root@sharplee creatfile]# トップ -b | 頭 10
6. htop コマンドを使用してメモリ使用量を表示する
htop コマンドは、Linux/Unix システム用のインタラクティブなプロセス ビューアーです。これはテキスト モードのアプリケーションであり、Hisham によって開発された ncurses ライブラリが必要です。これは、最上位コマンドの代替として設計されています。これは top コマンドに似ていますが、垂直方向および水平方向にスクロールして、システムで実行されているすべてのプロセスを表示できます。htop には、追加のボーナスであり、システムのパフォーマンスを追跡するときに非常に目立つ視覚的な色が付属しています。PID を入力せずに、プロセスの終了やリセットなど、プロセスに関連するタスクを自由に実行できます。
[root@sharplee creatfile]# htop
7. glances コマンドを使用してメモリ使用量を表示する
glances は、Python で書かれたクロスプラットフォームのシステム監視ツールです。CPU 使用率、メモリ使用率、実行中のプロセス、ネットワーク インターフェイス、ディスク I/O、Raid、センサー、ファイル システム情報、Docker、システム情報、稼働時間など、すべての情報を表示できます。
[root@sharplee creatfile]# 一瞥
8. ps_mem コマンドを使用してメモリ使用量を表示する
ps_mem は、Linux でプログラムのコア メモリ使用量を正確に取得できるシンプルな Python スクリプトです。これにより、(プロセスごとではなく) プログラムごとに使用される RAM の量が決まります。各プログラムが使用するメモリの総量を計算します。合計 = 合計 (プログラム プロセス用のプライベート RAM) + 合計 (プログラム プロセス用の共有 RAM)。共有 RAM の計算には問題があり、ツールは実行中のコアに対して最も正確な方法を自動的に選択します。注: 以下のコマンドを実行した場合、プロンプトが見つからない場合は、「yum install ps_mem」を実行してインストールしてください。
[root@sharplee creatfile]# ps_mem
9. sar コマンドを使用してメモリ使用量を表示します。
sar コマンドは、システム アクティビティの詳細を収集して報告するために使用されます。(注: 次のコマンドを使用して、コマンドが見つからないことを示すプロンプトが表示された場合は、「yum install sysstat」を使用してインストールできます)
[root@sharplee creatfile]# sar -r
概要: Linux システムには、メモリ使用量とシステム リソース使用率を監視するためのさまざまなツールとコマンドが用意されています.実際の状況に応じてさまざまなコマンド ツールを使用できます.一般的には、free、top、vmstat、htop などがよく使用されます.