Linuxでハードウェアデバイスの情報を確認する方法(dmidecode)

Xenの環境の場合、ホストOSやゲストOSに対してどれだけのメモリを割当てるか設定して起動します。
その場合、ホストOSがどれだけのメモリを持っているのかをチェックしようと、
freeコマンドや/proc/meminfoで確認してみると、Xenで割当設定したメモリ量しか表示されません。

例えば、ホストOSに512MBメモリを割当てると、
ホストOSでfree実行した場合こんな感じ。

# free
             total       used       free     shared    buffers     cached
 Mem:        524288     430904      93384          0      51964     233324
 -/+ buffers/cache:     145616     378672
 Swap:      2096376          0    2096376

524288KB=512MBがtotalとして出てきます。
また/proc/meminfoを見ると

# cat /proc/meminfo 
MemTotal:       524288 kB
MemFree:         93384 kB
Buffers:         52060 kB
Cached:         233316 kB
SwapCached:          0 kB
Active:         107348 kB
Inactive:       220392 kB
・・・省略

ということでこちらも同じく512MB

これだと、物理的にどれだけの量のメモリを積んでいるのかのがわかりません。


そこで便利なのがdmidecodeコマンドです。
このコマンドを実行することで物理的なデバイス情報を取得することができます。

# dmidecode
・・・省略

Handle 0x0024, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x0022
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 1024 MB
        Form Factor: DIMM
・・・省略

Handle 0x0026, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x0022
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 1024 MB
        Form Factor: DIMM
・・・省略

Handle 0x0028, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x0022
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 1024 MB
        Form Factor: DIMM
・・・省略

Handle 0x002A, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x0022
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 1024 MB
        Form Factor: DIMM


・・・省略

これを見ると1024MBのメモリが4本(4GB)刺さっていることがわかります。

これであとどれだけ仮想マシンにメモリ割り当てても大丈夫か判断できます。

ちなみに、xenのdom0に割り当てるメモリ量は/etc/grub.conf(/boot/grub/grub.conf)に書かれています。
ブートローダの設定で割当メモリ量を設定しているため、起動後にはすでに割当分のメモリ量しかみれないようです。