Linux内核“Reserved”内存

5

我正在尝试为一个低内存系统(16MB RAM)编译一个内核(3.14,arm64架构)。我已经设法关闭了所有不需要的功能,基本上没有设备、文件系统、模块和ZONE_DMA,只有一个非常基本的内核。

然而,当我启动内核时,我看到了这个:

Memory: 860K/16384K available (789K kernel code, 67K rwdata, 56K rodata, 64K init, 38K bss, 15524K reserved)

  • 什么是这个保留内存?

  • 我如何减少它?保留内存占用了很多我的RAM,只剩下860K可用。

谢谢!

2个回答

3

这是始终应该满足关键内存分配所需的最小内存量。将其设置得太低可能会导致系统崩溃,而将其设置得太高可能会立即OOM您的系统。您可以通过写入/proc/sys/vm/min_free_kbytes来修改此值。

要读取它:

$ cat /proc/sys/vm/min_free_kbytes 
67584

将其设置为1024KB(1MB):
$ echo 1024 > /proc/sys/vm/min_free_kbytes


-1

内存:可用860K/16384K(789K内核代码,67K读写数据,56K只读数据,64K初始化,38K未初始化数据段,15524K保留)

这是内存中的进程结构:文本/代码段、数据段(bss、rodata等)、堆和栈。内核始终驻留在RAM中,并为其使用保留一些内存空间。但当RAM较小时,它由内核和用户空间进程共享。

要了解更多关于嵌入式Linux的信息,请阅读此文章


3
“Reserved”(保留)内存部分有什么用途以及如何进行优化,仍未得到解释。 - eldukae

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接