从此处移出:https://stackoverflow.com/questions/7070640/how-to-fix-disappeared-memory-after-linux-2-6-18-kernel
我认为目前已知一个问题,即自 2.6.18 内核以来,内存显示存在一些问题:
例如:
dmesg | grep Memory
[ 0.000000] Memory: 82008k/98304k available (3091k kernel code, 448k absent, 15848k reserved, 2471k data, 460k init)
这是使用 Xen PV 的 96MB RAM VPS 上的实际内存量。
但是,当使用 free -m 时,实际输出如下:
free -m
total used free shared buffers cached
Mem: 86 74 11 0 8 48
-/+ buffers/cache: 18 68
Swap: 127 0 127
看起来 10MB 的内存被 free -m 输出“吃”掉了。
有没有人有办法解决这个问题?
谢谢!
答案1
一开始只有 90MB,您会注意到内核用于内核表和编译驱动程序的内存量占用了相当大一部分内存。通过调整可以很容易地解决该问题。
如果您希望减少内核占用的内存量,您可能应该研究构建自己的内核。从问题中无法清楚您使用的是什么操作系统,但如果您使用的是 CentOS 或其他消费级 Linux,内核中可能编译了一堆您可能不会使用的东西。以下是构建更精简内核的一些资源:
http://elinux.org/Kernel_Size_Tuning_Guide
http://www.yolinux.com/TUTORIALS/LinuxTutorialOptimization.html