Linux   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了linux – 为什么“free”命令和“dmidecode”显示不同的RAM值?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在VMWare上运行了一个CentOS 5.10(32位)服务器.它分配了4 GB的RAm. 如果我运行dmidecode -t 17 | grep尺寸| grep MB我看到: Size: 4096 MB 然而,当我自由奔跑时,我看到: @R_83_10586@l used free shared buffers cached Mem: 3107140
我在VMWare上运行了一个CentOS 5.10(32位)服务器.它分配了4 GB的RAm.

如果我运行dmidecode -t 17 | grep尺寸| grep MB我看到:

Size: 4096 MB

然而,当我自由奔跑时,我看到:

@R_83_10586@l       used       free     shared    buffers     cached
Mem:       3107140    1239244    1867896          0        332     400464
-/+ buffers/cache:     838448    2268692
Swap:      2096472          0    2096472

为什么无内存报告的总量与dmidecode输出之间存在差异?

我正在运行的内核是:

2.6.18-371.4.1.el5 #1 SMP Thu Jan 30 06:09:24 EST 2014 i686 i686 i386 GNU/Linux

不可否认,内核没有运行PAE,但我认为只有超过4 GB的内存才需要.

我知道我错过了一些简单的事情 – 有人可以详细说明吗?

附加说明/观察

看起来我的内核肯定会为其他东西保留一堆内存.这是我在/ var / log / dmesg中看到的内容

Linux version 2.6.18-371.4.1.el5 (mockbuild@builder17.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-54)) #1 SMP Thu Jan 30 06:09:24 EST 2014
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000010000 - 000000000009f800 (usablE)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000ca000 - 00000000000cc000 (reserved)
 BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000bfef0000 (usablE)
 BIOS-e820: 00000000bfef0000 - 00000000bfeff000 (ACPI data)
 BIOS-e820: 00000000bfeff000 - 00000000bff00000 (ACPI NVS)
 BIOS-e820: 00000000bff00000 - 00000000c0000000 (usablE)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000fffe0000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000140000000 (usablE)
Warning only 4GB will be used.
Use a PAE enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000f6bf0
Memory for crash kernel (0x0 to 0x0) notwithin permissible range

解决方法

使用32位内核,您只有4GB的可用地址空间.其中一些地址空间必须由系统中的(虚拟或物理)硬件使用,例如视频卡,NIC等,以用于它们自己的目的.这种用法通常在256MB-1GB之间,具体取决于特定硬件需要多少地址空间.

由于该地址空间由硬件使用,因此32位系统通常无法访问相应的RAm.

你有几个选择:

>首选选项是运行64位操作系统.这大大扩展了地址空间,因此所有RAM和硬件都有足够的空间.它还打破了应用程序的2GB / 3GB 32位限制,同时保持了运行32位程序的能力.通常,任何具有2GB以上RAM的系统都应运行64位操作系统以避免这些问题.>另一种选择是在启用PAE的情况下运行32位内核.这将取消隐藏RAM,但每个进程仍将限制为2GB / 3GB的地址空间,具体取决于内核构建的细节.由于64位操作系统可以很好地运行32位应用程序,因此没有优势和许多缺点(例如缺少升级路径).

大佬总结

以上是大佬教程为你收集整理的linux – 为什么“free”命令和“dmidecode”显示不同的RAM值?全部内容,希望文章能够帮你解决linux – 为什么“free”命令和“dmidecode”显示不同的RAM值?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。