ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

CentOSコミュのメモリ認識についての質問

  • mixiチェック
  • このエントリーをはてなブックマークに追加
搭載メモリより認識メモリが少なく、原因がわかりません。

CentOS5.4 64 bit を使用しており、uname -aは以下です。
Linux *** 2.6.18-164.6.1.el5xen #1 SMP Tue Nov 3 16:48:13 EST 2009 x86_64 x86_64 x86_64 GNU/Linux

HPのZ800という機種を使用しており先日48GB(4G×12枚)メモリを買いまして導入したところ、BIOS上では48GB認識されておりますが、

/proc/meminfoには
MemTotal: 33554432 kB
MemFree: 32144640 kB
Buffers: 30476 kB
Cached: 339024 kB
としか書かれておらず、32GBしか認識されていないように見えます。

同じような現象にあわれた方、また原因のわかる方いらっしゃいませんか?

コメント(11)

/etc/sysctl.conf の 「 kernel.shmmax = 」と「 kernel.shmall = 」には、
どのような値が記載されていますでしょうか?
よしなお様

ありがとうございます。

# Controls the maximum shared segment size, in bytes
kernel.shmmax = 68719476736

# Controls the maximum number of shared memory segments, in pages
kernel.shmall = 4294967296

と表示されております。
調査ありがとうございました。

私の扱っているx86_64サーバー環境は8GBしか積んでいませんが、imai san の環境はデフォルトの値であることが確認できました。
(記述がおかしいのではと、疑っていました)
※それぞれの値の意味に関しては、下記のURLをご参照ください。
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/shmget.2.html

さて、解決策についてなのですが、当初はCentOSPlusのレポジトリにあるhugememカーネルをあてれば良いんじゃないかと言う安易な発想だったんですが、uname -a の結果表示の「xen」を見落としておりまして、仮想環境をお使いなのだと気付きました。
ですので、回答に行き詰っているのが正直なところです。申し訳ございません。

ところで、メモリテスト「memtest86」などで、物理的に障害がないことは確認されましたでしょうか?
もしメモリもHPの純正品をお使いなのでしたら、高価なものですし、一度ご確認されたほうがよろしいかと思います。
http://forum.nginx.org/read.php?24,28541,28863
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ja-JP/Virtualization/ch-virt-hw-support.html

1. Xenでないほうのカーネル(仮想化対応カーネルでないほうの x86_64 カーネル)で起動する.

2. grub.conf の kernel 行に mem=32G を追記する.


Xen の機能を使わないのであれば,個人的には 1. が無難だと思います.

(2. の方法で,32GB を超えて正しく dom0 が動くのかどうかは,私にはわかりません.ハイパバイザ・コールのためのパラメータがほかにもあったような... )
http://www.redhat.com/docs/manuals/enterprise/RHEL-5-manual/ja-JP/Virtualization/ch-virt-hw-support.html

RHLの情報ですが、基本的にXenは32GB以上は認識しないということみたいですよ
(自分ではやったことはないのですが・・・)
兄者さん

私が 2つ挙げた URL のうちの 2つ目ですね.
ということらしいので,やはり,

> 1. Xenでないほうのカーネル(仮想化対応カーネルでないほうの x86_64 カーネル)で起動する.

が無難だと思います.
> NOIKE
失礼しました(^−^;

そうですね・・・メモリをフルで使用することを考慮するのであればXenなしで起動することになるのでしょうね。
でも、これだけメモリが安価になっていてサーバ能力が上がっているので仮想環境で32GB以上使えるように何か方法はないものでしょうかねぇ・・・

VMwareだったら使えるののでしょうが・・・
Xen にこだわるのであれば、Xen Serverはどうでしょうか?128GBまでいけるようです。
http://www.citrix.co.jp/products/xenser/system.html

もはや Cent OS では無くなってしまいますが…。
兄者さん

> でも、これだけメモリが安価になっていてサーバ能力が上がっているので仮想> 環境で32GB以上使えるように何か方法はないものでしょうかねぇ・・・

あなたも挙げている URL に書いてある方法で,ひとまず,Xen 仮想化対応カーネルは 32GB 以上認識できるのではないですか?(私が 4 で書いた,方法 2.)


> VMwareだったら使えるののでしょうが・・・

元質問者は,仮想マシン上で何かしようとしているわけではなくて,実機の上で CentOS を動かすときに,Xen 仮想化対応カーネルで起動している,ということだと思います.

デフォルトのインストールで,同じカーネル・バージョンの仮想化対応カーネルでないカーネルもインストールされていると思うので,そちらで起動するのが簡単です.(私が 4 で書いた,方法 1.)
shige さん

CentOS がデフォルトでインストールする Xen 仮想化対応カーネルも,Xen Server が採用しているカーネルと同じように 32GB 以上を扱えるカーネルだったと思うのです.
それが,元質問者の現在の状況では 32GB 以上が見えていないようなので,カーネルにオプションを渡してあげれば,とりあえずは見えるようにはなるのだろうと思っています.
皆様

ありがとうございます。両方試してみまして、

>grub.conf の kernel 行に mem=32G を追記する
この方法では、解決ができず、

Xenでないカーネルで起動することで解決しました。

本当にありがとうございました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

CentOS 更新情報

CentOSのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング