【问题标题】:Linux Kernel 'Reserved' MemoryLinux 内核“保留”内存
【发布时间】:2015-04-28 05:05:47
【问题描述】:

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

但是,当我启动内核时,我看到了这个:

内存:860K/16384K 可用(789K 内核代码、67K rwdata、56K rodata、64K init、38K bss、15524K 保留)

  • 这个保留的内存是什么?

  • 如何减少这种情况?储备占用了我的大量 RAM,只剩下 860K 可用

提前致谢!

【问题讨论】:

    标签: linux memory optimization kernel arm64


    【解决方案1】:

    它是满足关键内存分配的最小内存量。将其设置得太低可能会导致系统损坏,设置为高可能会立即 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

    【讨论】:

      【解决方案2】:

      内存:860K/16384K 可用(789K 内核代码、67K rwdata、56K rodata、64K init、38K bss、15524K 保留)

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

      了解更多关于嵌入式 linux 的信息read this post

      【讨论】:

      • 这仍然没有解释内存的“保留”部分的用途以及如何调整它
      猜你喜欢
      • 2020-07-07
      • 1970-01-01
      • 2019-08-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-28
      • 2021-06-05
      • 1970-01-01
      • 2014-03-04
      相关资源
      最近更新 更多