概要

Linuxを実行しているサーバーで合計メモリサイズを確認する必要がある場合や、シェルスクリプトでメモリ統計を使用する必要がある場合があります。 幸いなことに、物理メモリの合計をチェックするために使用できる多数のツールにアクセスできます。 このチュートリアルでは、いくつかの便利なコマンドとツールを使用して、その目的を果たすために異なるアプローチを取るつもりです。

2. freeコマンド

freeは、表示されるすべてのコマンドの中で最も簡単です。 これは、物理的なメモリ使用量を印刷し、メモリ使用量を交換するために使用されます—デフォルトでは、標準出力に出力されます。 Freeコマンドは、ほとんどのLinuxディストリビューションで利用可能であるため、RAMの統計情報をすばやく確認するために広く使用されているコマン 私たちは、単に任意のフラグなしで私たちの端末上でfreeコマンドを入力することができます:

$ free
 total used free shared buff/cache availableMem: 8021048 1320432 5689744 335556 1010872 6121932Swap: 0 0 0

できる限り、物理メモリのサイズはバイト単位で出力されます。 ただし、–hまたは-humanフラグを使用して、人間が判読可能な形式で出力を簡単に印刷することができます:

$ free -h
 total used free shared buff/cache availableMem: 7.6Gi 1.3Gi 5.4Gi 318Mi 985Mi 5.8GiSwap: 0B 0B 0B

上記の出力に見られるように、合計7.6GiBのRAMがあります。 さらに、–kilo、–mega、–Gigaなど、好きな形式で出力を印刷するために使用できるオプションは他にもたくさんあります。 もう一つ興味深いオプションは-sオプションです:

$ free -h -s 5

-sフラグは秒の略なので、この例ではfreeは5秒ごとにRAM使用量を出力します。 指定した間隔でRAMの使用量を監視する場合に特に便利です。 我々は簡単にCtrl+Cキーボードショートカットでプロセスを終了することができます。

3. vmstatコマンド

freeコマンドと同様に、vmstat(仮想メモリ統計)もほとんどのLinuxディストリビューションで利用できます。 デフォルトでは、vmstatコマンドを入力すると、swap、CPU、IO、およびシステム情報とともに、空き、バッファ、およびキャッシュされたメモリが出力されます:

$ vmstat -w
--procs-- -----------------------memory---------------------- ---swap-- -----io---- -system-- --------cpu-------- r b swpd free buff cache si so bi bo in cs us sy id wa st 1 0 0 5352900 56816 1053708 0 0 162 73 328 1087 18 4 78 0 0

-wまたは-wideフラグは、出力をワイド読み取り可能な形式で出力します。 RAMの合計サイズに興味があるので、-sまたは–statsフラグを追加します:

$ vmstat -s
 8021048 K total memory 1564516 K used memory 305336 K active memory 1962636 K inactive memory 5391588 K free memory 58224 K buffer memory 1006720 K swap cache 0 K total swap 0 K used swap 0 K free swap 76393 non-nice user cpu ticks 5 nice user cpu ticks 14122 system cpu ticks 337834 idle cpu ticks 1790 IO-wait cpu ticks 1463 IRQ cpu ticks 614 softirq cpu ticks 0 stolen cpu ticks 617253 pages paged in 310410 pages paged out 0 pages swapped in 0 pages swapped out 1426200 interrupts 4722588 CPU context switches 1625563254 boot time 1949 forks

出力の最初のエントリは合計物理RAMです。 場合によっては、すべての情報が必要ないため、grepを使用して目的のエントリのみを抽出することができます:

$ vmstat -s | grep -i 'total memory' | sed 's/ *//'
8021048 K total memory

4. topコマンド

topは基本的にリアルタイム出力を持つコマンドラインタスクマネージャです。 これは、クリーンなテーブルレイアウトで実行中のプロセスをチェックするために使用されます。 また、一般的なCPU、RAM、およびシステム情報も表示されます。 Topコマンドを実行するだけで起動できます:

$ top
top - 15:18:13 up 57 min, 1 user, load average: 3.40, 3.26, 2.04Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombie%Cpu(s): 17.2 us, 3.6 sy, 0.0 ni, 77.5 id, 0.3 wa, 0.9 hi, 0.5 si, 0.0 stMiB Mem : 7833.1 total, 4665.9 free, 1782.3 used, 1384.8 buff/cachetop - 15:18:49 up 57 min, 1 user, load average: 2.61, 3.08, 2.03Tasks: 138 total, 1 running, 137 sleeping, 0 stopped, 0 zombietop - 15:18:58 up 58 min, 1 user, load average: 2.45, 3.02, 2.02MiB Swap: 0.0 total, 0.0 free, 0.0 used. 5324.5 avail Mem

上部には、Memフィールドの横にあるメモリ情報が表示され、合計7833MiBの合計RAMがあることがわかります。

5. dmidecode Utility

dmidecodeは、ハードウェア仕様、シリアル番号、BIOSバージョンなどのハードウェアコンポーネントに関する情報を人間が読める形式で印刷するヘルパーツールです。 ハードウェア情報は、DMIテーブルから抽出されます。 また、サポートされている最大メモリなど、システムに関する興味深い情報を見つけるためにも使用できます。

5.1. Dmidecode

のインストールdmidecodeはデフォルトでは一部のLinuxディストリビューションにインストールされていないので、最初にインストールします。 パッケージマネージャーを使用して、配布リポジトリからdmidecodeを直接インストールできます。

Ubuntuベースのディストリビューションでは、aptを介してパッケージをインストールできます:

# apt install dmidecode

RHEL、Fedora、およびCentOSでは、yumを使用できます:

# yum install dmidecode

Archベースの分布では、単にpacmanを使用します:

# pacman -Sy dmidecode

5.2. Dmidecode

を使用してインストールが完了したら、ターミナルからdmidecodeコマンドを実行できます:

# dmidecode

dmidecodeを実行するにはroot権限が必要です。 コマンドを実行すると、詳細なハードウェア情報を見ることができます。 それは私たちのハードウェアコンポーネントに関連する多くの情報が含まれていますが、私たちは私たちの合計メモリサイズにのみ興味があります。

幸いなことに、BIOS、メモリ、プロセッサ、温度などのさまざまなコンポーネントのコマンドに–typeオプションを与えることができます。 -Typeオプションは、DMIタイプの数値を必要とします。

ここでは、割り当てられた番号でアクセスできるメモリDMIタイプを見てみたいと思います5, 6, 16, 17, 18, 19, 20, 21, そして22。 しかし、私たちは現在マザーボードのスロットに接続されているRAMデバイスを印刷する番号19に興味があります:

# dmidecode --type 19
# dmidecode 3.3Getting SMBIOS data from sysfs.SMBIOS 3.0.0 present.Handle 0x0049, DMI type 19, 31 bytesMemory Array Mapped AddressStarting Address: 0x00000000000Ending Address: 0x001FFFFFFFFRange Size: 8 GBPhysical Array Handle: 0x0044Partition Width: 1

ご覧のとおり、合計サイズが8GBの単一のRAMデバイスのみがRAMスロットの1つにインストールされています。

6. /proc/meminfo仮想ファイル

/procディレクトリは、仮想ファイルを含む特別なタイプのディレクトリです。 これらの仮想ファイルは、Linuxカーネル、プロセス、および構成を覗いてみるための方法です。 これらのファイルは実際にはディスク上に存在せず、スペースを取りませんが、読み取られたときに作成されます。 一部のファイルにアクセスするには、rootアクセスが必要です。

/procディレクトリ内にmeminfoという名前の特別な仮想ファイルがあり、catやlessなどのコマンドで読み取ることができます。 Meminfoファイルには、物理メモリサイズに関する情報やその他の有用な情報が含まれています。 Catを使って/proc/meminfoファイルを読みましょう:

$ cat /proc/meminfo

上記の例では、catコマンドを使用しました。catコマンドは、ファイルまたは標準入力から読み取ることができる便利なユーティリティです。 コマンドが実行されると、/proc/meminfoが読み込まれ、物理メモリに関する長い出力が表示されます。 出力の上の3行に表示される合計RAMサイズのみに関心があります:

$ cat /proc/meminfo | head -n 3
MemTotal: 8021048 kBMemFree: 4542960 kBMemAvailable: 5155668 kB

headコマンドを使用して、興味のある行のみを印刷しました。 Headコマンドに指定された-n引数は、読み取る行数を指定するために使用されます。 サイズはキロバイト単位で印刷され、私たちの合計、無料、および利用可能な物理メモリが何であるかのアイデアを与える必要があります。

物理RAMサイズを処理する必要があるBashスクリプトを書いているとしましょう。 最初に/proc/meminfoファイルを読んでから、合計メモリサイズをgrepすることでこれを達成できます:

#!/bin/bashtotal_ram () { local totalram=$(cat /proc/meminfo | grep -i 'memtotal' | grep -o ']*') echo $totalram}ram_size=$(total_ram)echo "Total RAM: $ram_size kB"

次に、スクリプトを保存して実行可能にしましょう:

$ chmod +755 totalram.sh$ ./totalram.shTotal RAM: 8021048 kB

GUIタスクマネージャの使用

プロセスの管理に加えて、CPU、RAM、ネットワークの使用状況をチェックするために使用できるさまざまなGUIタスクマネージャがあ のは、Linuxのための最も人気のあるものを簡単に見てみましょう。

7.1. GNOMEシステムモニタ

GNOMEシステムモニタは、GNOMEデスクトップ環境に同梱されているデフォルトのタスクマネージャです。 ただし、別のデスクトップ環境を実行している場合は、配布パッケージリポジトリでgnome-system-monitorパッケージを簡単に探すことができます。 それがインストールされたら、我々はコマンドラインからそれを起動することができます:

$ gnome-system-monitor

リソースタブに移動すると、他の統計情報の中で合計メモリサイズが表示されます。

7.2. KSysGuard

KSysGuardはKDEコミュニティによって開発されたデフォルトのタスクマネージャであり、デフォルトでKDEに付属しています。 同様に、別のデスクトップ環境を使用している場合は、パッケージリポジトリでksysguardパッケージを探すことで、システムに簡単にインストールできます。 インストールされたらksysguardコマンドで起動できます:

$ ksysguard

ksysguardが起動すると、システムロードタブに移動し、メモリ情報を素敵なグラフと一緒に見ることができます。

結論

この記事では、Linuxシステムの物理メモリサイズを調べるのに役立つさまざまなコマンドとツールを調べました。

minimal freeコマンドとその代替vmstatコマンドについて説明しました。 次に、topコマンドを使用してさまざまなシステム情報を見つけました。 また、dmidecodeユーティリティと、DMIテーブルから物理メモリ情報を抽出する方法についても説明しました。

その後、/procディレクトリが何であるか、/proc/meminfoファイルを読んでRAMの合計サイズを確認し、bashスクリプトで使用する方法を学びました。 最後に、いくつかのグラフィカルタスクマネージャと、それらを使用してRAMの使用状況と統計を確認する方法について学びました。

Linuxエコシステムで数年の経験があり、その経験をコミュニティと共有することに興味がある場合は、私たちの貢献ガイドラインをご覧ください。

コメントを残す

メールアドレスが公開されることはありません。