非原创:原文链接不详(从别人那截取的她也没写出处,留下来以后方便找)
最近新拿了几台IBM服务器做测试,服务器配置很不错,标称8G的内存,在装完Fedora 9之后使用”free”命令查看机器内存却发现系统显示的内存大小只有3G,并没有像标称那样到8G:
total used free shared buffers cached
Mem: 3106944 213288 2893656 0 9060 143584
-/+ buffers/cache: 60644 3046300
Swap: 0 0 0
起初以为是这台机器内存少了,wangyuneu让我去BIOS下看看内存大小,我在BIOS里发现机器内存确实是8G,另一个同
事也提醒我是不是因为操作系统不支持的原因,他装的Windows 2003也存在类似的问题,只识别4G的内存。于是基本上可
以确定这个问题应该和系统有关。
原本准备重新编译Fedora 9的内核,使其支持超过4G的内存,在寻找kernel源码的时候,不小心发现Fedora 9的yum库
中有一个kernel-PAE的包,心中一阵窃喜,这样就不用那么费劲地重新编译Fedora 9内核了,只需要执行以下命令:
yum install kernel-PAE
yum remove kernel
执行完成后重新启动服务器,再使用”free”查看内存大小:
total used free shared buffers cached
Mem: 8308848 142780 8166068 0 5960 74948
-/+ buffers/cache: 61872 8246976
Swap: 0 0 0
这样内存就到8G了,问题解决~~。
背景知识:
kernel-PAE,用于拥有超过 4GB RAM 的 32-bit x86 系统中,或 CPU 带有 “NX (No eXecute)” 特性的系统中。他同时
支持单/多处理器系统。
PAE:Physical Address Extension,PAE 是 Intel 提供的内存地址扩展机制,他通过在宿主操作系统中使用 Address
Windowing Extensions API 为应用程式提供支持,从而让处理器将能够用来寻址物理内存的位数从 32 位扩展为 36 位。
在 32 位的架构上使用超过 16 GB 的内存是不明智的,即使启用了 PAE 也是如此。