我在服务器上安装了 Oracle Enterprise Linux 64 位,内存为 64g。但系统检测到的内存只有 32b,以下是详细信息:
[root@oracle-node2 ~]# uname -a
Linux oracle-node2.ra.gov.ge 2.6.18-194.el5xen #1 SMP Mon Mar 29 22:22:00 E DT 2010 x86_64 x86_64 x86_64 GNU/Linux
[root@oracle-node2 ~]# uname -r
2.6.18-194.el5xen
[root@oracle-node2 ~]# uname -m
x86_64
[root@oracle-node2 ~]# head /proc/meminfo
MemTotal: 33554432 kB
MemFree: 28984540 kB
Buffers: 35612 kB
Cached: 1912284 kB
SwapCached: 0 kB
Active: 1620324 kB
Inactive: 1212660 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 33554432 kB
[root@oracle-node2 ~]# cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
# initrd /initrd-version.img
#boot=/dev/sda
default=0
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Enterprise Linux (2.6.18-194.el5xen)
root (hd0,0)
kernel /xen.gz-2.6.18-194.el5
module /vmlinuz-2.6.18-194.el5xen ro root=/dev/VolGroup00/LogVol00 rhgb quiet
module /initrd-2.6.18-194.el5xen.img
title Enterprise Linux-base (2.6.18-194.el5)
root (hd0,0)
kernel /vmlinuz-2.6.18-194.el5 ro root=/dev/VolGroup00/LogVol00 rhgb qui et
initrd /initrd-2.6.18-194.el5.img
我怎样才能将该限制改为 64g?注意:BIOS 内存部分显示 64g。
附加信息:
[root@oracle-node1 ~]# dmesg | grep -i memory
Memory: 32782304k/33562624k available (2512k kernel code, 771444k reserved, 1396k data, 184k init)
Non-volatile memory driver v1.2
[root@oracle-node1 ~]# dmidecode -t 16
# dmidecode 2.10
SMBIOS 2.5 present.
Handle 0x002B, DMI type 16, 15 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Single-bit ECC
Maximum Capacity: 192 GB
Error Information Handle: Not Provided
Number Of Devices: 18
答案1
是的,正如我所猜测的,这是 xen 内核的限制。目前看来,您使用的内核只能检测到 dom0 的 32 GiB 内存。但是,其余 32 GiB 可以分配给 domU。
我找不到我所搜索的文档,但我可以稍后查找。你看,在 dmesg 中它显示内核仅检测到 32 GiB 的 RAM,这也是你在 中看到的/proc/meminfo
。
这个线程也说明了同样的事情。
http://xen.1045712.n5.nabble.com/memory-quesion-td2609396.html
它说
This is a limitation of the Xen kernel; only 32GB will be visible to Dom0. The "missing" 32GB can still be allocated to DomU's, however.
如果你能坚持下去,我也可以在来源或更权威的文章中查看。
答案2
检查 Xen Hypervisor 是否看到所有内存:
xm info | grep memory
如果 Xen Hypervisor 看到您所有的 64GB RAM,请检查分配给 Dom0 的内存量:
xm list
如果 Xen Hypervisor 看到您所有的 64GB 内存,但只有 32GB 分配给 Domain-0,我会尝试dom0_mem
在虚拟机管理程序命令行上明确设置。
如果 Xen Hypervisor 看不到您所有的 64GB RAM,我真的不知道该去哪里找 :) 但我会尝试使用较新版本的 Xen Hypervisor 和/或 dom0 Linux 内核/系统。