如何修复 Linux 2.6.18 内核后“消失”的内存?

如何修复 Linux 2.6.18 内核后“消失”的内存?

从此处移出: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

相关内容