lsmemコマンドとは?使い方を徹底解説【Linux】

lsmemコマンドとは?使い方を徹底解説【Linux】

PR Amazonのアソシエイトとして、ITナレッジライフは適格販売により収入を得ています。

記事の文字数:2,599

Linuxのlsmemコマンドの使い方を解説します。メモリブロックの状態や物理構成を確認するlsmemの基本から、出力結果の各項目の見方、--summaryや-bなどの主要オプション、freeコマンドとの使い分けまで具体例付きで紹介します。

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

初心者向け

わかばちゃんと学ぶ サーバー監視

難易度
実用性
読みやすさ

マンガと図解が中心で圧倒的に読みやすい。負荷調査の手法がスッと理解できるようになります。

新しいLinuxの教科書 第2版

難易度
実用性
読みやすさ

一生モノの基礎知識が身につく定番書です。

ゼロからわかる Linuxコマンド200本ノック―基礎知識と頻出コマンドを無理なく記憶に焼きつけよう!

難易度
実用性
習得度

アウトプット重視で記憶に定着しやすい。反復練習でLinux操作が自由自在になります。

エンジニア1年生のための世界一わかりやすいLinuxコマンドの教科書

難易度
実用性
読みやすさ

LinuxLinux [リナックス / ライナックス]オープンソースのOSカーネルサーバーの運用やハードウェアの調査において、「現在システムに認識されている物理メモリの構成を知りたい」「メモリブロックがオンライン(利用可能)かオフラインか確認したい」という場面があります。

そんなときに役立つのが lsmem コマンドです。本記事では、lsmemコマンドの基本的な使い方から、出力結果の各項目の意味、実務で役立つ主要なオプション、そしてよく似た用途で使われる free コマンドとの違いについてわかりやすく解説します。

lsmemコマンドとは?概要と基本機能

lsmem は、Linuxシステムにおける物理メモリ(メモリブロック)の状態や構成情報を一覧表示するコマンドです。

内部的には /sys/devices/system/memory/ などの情報を収集し、メモリブロックごとのアドレス範囲、サイズ、状態(オンラインかオフラインか)などを整理して表示してくれます。

lsmem を使うメリットは以下の通りです。

freeコマンドとの違いと使い分け

メモリを確認するコマンドとして最も有名なのは free ですが、lsmem とは明確な役割の違いがあります。

  • free コマンド:現在システム上で「どれくらいのメモリが使用されているか」「どれくらい空いているか」という メモリの使用状況・空き容量 を確認するために使います。
  • lsmem コマンド:システムに搭載されている「メモリブロックの物理的な構成」や、OSOS [オーエス]Operating System。基本ソフトウェアから見て「利用可能(オンライン)な状態か」という ハードウェアレベルの構成・状態 を確認するために使います。

「サーバーのメモリ使用率が知りたい」場合は free -h などを使い、「OSが物理メモリをどう認識しているか調べたい」「ホットプラグで追加したメモリブロックの状態を確認したい」場合は lsmem を使う、というように使い分けます。

lsmemコマンドの出力結果の見方と各項目の意味

lsmem コマンドをオプションなしで実行すると、メモリブロックの一覧がサマリー付きで表示されます。

基本構文と実行例
lsmem
実行結果(例)
RANGE SIZE STATE REMOVABLE BLOCK
0x0000000000000000-0x000000001fffffff 512M online yes 0-3
0x0000000020000000-0x000000003fffffff 512M online yes 4-7
0x0000000040000000-0x000000005fffffff 512M online yes 8-11
Memory block size: 128M
Total online memory: 1.5G
Total offline memory: 0B

出力される各列(カラム)やサマリ項目の意味は以下の通りです。

1. メモリブロックの一覧表示部

項目意味
RANGEメモリブロックがマッピングされている物理アドレスの範囲。開始アドレスと終了アドレス(16進数)で示されます。
SIZE該当範囲のメモリサイズ。デフォルトでは人間が読みやすい単位(MやGなど)で表示されます。
STATEメモリブロックの状態。OSが利用可能な状態であれば online、利用できない状態(または取り外されている状態)であれば offline と表示されます。なお、オフライン処理中の過渡状態を表す going-offline などのステータスが表示されることもあります。
REMOVABLE該当のメモリブロックが、オンラインのままOS上で安全にオフライン化(切り離し)できるかどうかを示します。表示は yes または no で、すでにオフラインになっているブロックは - と表示されます。物理的なメモリの取り外し可否ではなく、ソフトウェア的な制御の可否を表す指標です。
BLOCKメモリブロックの番号(インデックス)またはその範囲。

※ 環境によっては NODE(NUMAノード番号)の列が表示されることもあります。

2. サマリ情報部

項目意味
Memory block sizeシステムにおける1つのメモリブロックのサイズ(アーキテクチャや設定によって異なります)。
Total online memory現在オンラインで利用可能な物理メモリの合計容量。
Total offline memory現在オフラインになっている物理メモリの合計容量。

lsmemコマンドの主要オプションと活用法

—summary:全体のサマリ情報だけを表示する

システム全体のサマリ情報だけを確認したい場合は --summary オプション(引数なしで実行するとデフォルトで --summary=only として動作)を使用します。

実行コマンド
lsmem --summary
実行結果(例)
Memory block size: 128M
Total online memory: 1.5G
Total offline memory: 0B

サクッと合計オンラインメモリ容量を確認したい場合に便利です。

-b(—bytes):サイズをバイト単位で表示する

デフォルトでは、サイズ(SIZE列やサマリ)はメガバイト(M)やギガバイト(G)などの単位で丸められて表示されます。これを正確なバイト単位で出力したい場合は -b オプションを指定します。

実行コマンド
lsmem -b
実行結果(例)
RANGE SIZE STATE REMOVABLE BLOCK
0x0000000000000000-0x000000001fffffff 536870912 online yes 0-3
...
Memory block size: 134217728
Total online memory: 1610612736
Total offline memory: 0

—output-all:すべての利用可能なカラムを表示する

デフォルトの表示項目以外にも、内部で保持している情報すべてを表示したい場合は --output-all を使用します。

実行コマンド
lsmem --output-all

このオプションを使用すると、NUMAノード番号など、デフォルトでは省略されがちな詳細項目も出力テーブルに追加されます。

-J(—json):JSON形式で出力する

シェルスクリプトや他のプログラム(PythonPython [パイソン]汎用プログラミング言語GoGo [ゴー]Google開発のシンプルで高速な言語など)から lsmem の実行結果をパースして利用したい場合は、-J オプションでJSON形式で出力するのが推奨されます。ただし、JSON形式(-J)やRAW形式などのオプションを指定した場合、末尾のサマリ行(Total online/offline memoryなど)は出力に追記されなくなる点に注意してください。

実行コマンド
lsmem -J
実行結果(例)
{
"lsmem": [
{
"range": "0x0000000000000000-0x000000001fffffff",
"size": "512M",
"state": "online",
"removable": "yes",
"block": "0-3"
}
]
}

まとめ:lsmemでメモリの物理状態を把握しよう

  • lsmem コマンドは、メモリブロックのアドレス範囲や状態(オンライン/オフライン)を確認するためのコマンド。
  • メモリの使用率や空き容量を見る free コマンドとは役割が異なる。
  • --summary でサマリ情報の抽出、-J でJSON出力が可能など、状況に応じた使い分けができる。
  • ハードウェアトラブルの調査やメモリのホットプラグ運用時などに威力を発揮する。

物理マシンの運用やカーネルレベルのメモリ管理に関わる場面では、free コマンドだけでなく lsmem コマンドも併せて活用できるようにしておきましょう。

関連記事 CPUCPU [シーピーユー]Central Processing Unit。コンピュータの頭脳となる中央演算処理装置の構成(コア数やアーキテクチャ)を確認したい場合は、lscpuコマンドが便利です。

lscpuコマンドとは?使い方と出力の見方を解説【Linux】
ITナレッジライフ

lscpuコマンドとは?使い方と出力の見方を解説【Linux】

Linuxのlscpuコマンドの使い方を初心者向けに解説します。CPU情報を確認するlscpuの基本から、出力結果の各項目の見方、-eや-pなどの主要オプション、/proc/cpuinfoとの違いまで具体例付きで紹介します。

メモリやCPUの使用状況を確認したい場合は、vmstatfreeコマンドの使い方もあわせて参考にしてください。

【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法
ITナレッジライフ

【Linux】vmstat・freeコマンドでメモリ使用率・CPU使用率を確認する方法

メモリ使用率はfreeコマンドの総メモリと利用可能なメモリから算出し、CPU使用率はvmstatのアイドル時間から算出します。


以上で本記事の解説を終わります。
よいITライフを!
ITナレッジライフ 運営者
この記事を書いた人

Z (ITナレッジライフ)

現役のITエンジニア。Linux、プログラミング、IT用語など、日々の業務で得た「痒いところに手が届く」技術情報を発信しています。

プロフィールと編集ポリシーを見る

Linuxユーザにお勧めの本 ↗

最新版

ゼロからはじめるLinuxサーバー構築・運用ガイド 第2版 動かしながら学ぶWebサーバーの作り方

難易度
実用性
最新度

Rocky Linux対応。実際にWebサーバーを公開するまでのプロセスを体験できる、最も確実で実践的なガイドブックです。

人気記事


記事を評価

Thanks!
目次
Scroll to Top