深入理解内存管理:交换、映射与泄漏检测
1. 交换(Swapping)
交换的核心思想是预留一些存储空间,让内核可以将未映射到文件的内存页面放置其中,从而释放内存供其他用途。交换文件能增加物理内存的有效大小,但它并非万能。在内存不足的系统中,频繁地将页面复制到交换文件和从交换文件复制回来会产生成本,导致系统主要活动变成交换,即磁盘抖动(disk thrashing)。
嵌入式设备很少使用交换,因为它与闪存存储不兼容,频繁写入会使闪存快速磨损。不过,可以考虑交换到压缩内存(zram)。
2. 交换到压缩内存(zram)
zram 驱动会创建基于 RAM 的块设备,如 /dev/zram0、/dev/zram1 等。写入这些设备的页面会在存储前进行压缩,压缩比在 30% 到 50% 之间,可使可用内存总体增加约 10%,但会增加处理量和功耗。
要启用 zram,需按以下步骤操作:
1. 用以下选项配置内核:
CONFIG_SWAP
CONFIG_CGROUP_MEM_RES_CTLR
CONFIG_CGROUP_MEM_RES_CTLR_SWAP
CONFIG_ZRAM
- 在 /etc/fstab 中添加以下内容以在启动时挂载 zram:
/dev/zram0 none swap defaults zramsize=<size in bytes>,swapp
超级会员免费看
订阅专栏 解锁全文
15

被折叠的 条评论
为什么被折叠?



