在 Linux 中动态增加 SWAP (ZRAM) 大小
[](https://res.cloudinary.com/practicaldev/image/fetch/s--FdZmFqwx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/j8oj5qvv9qo55n2ccbfc.jpg) 简介 交换内存很有用,
[](https://res.cloudinary.com/practicaldev/image/fetch/s--FdZmFqwx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/j8oj5qvv9qo55n2ccbfc.jpg)
简介
交换内存很有用,但速度慢时没人喜欢它。当物理内存 (RAM) 已满时,会使用 Linux 中的交换。如果系统需要更多内存资源并且 RAM 已满,则内存中的非活动页面将被移至交换空间。
Fedora 多年来一直默认使用swap-on-zram,并且默认在 Fedora Workstation 上提供。 ZRAM 在 RAM 中创建一个块设备,其中原本会写入交换(磁盘/ssd)的页面首先被压缩,然后存储。这允许更快的交换 I/O,并且数据压缩提供了大量的内存节省。
zram 设备(通常为/dev/zram0
)在早期引导期间由 zram-generator 根据其配置文件在创建时设置大小。使用的内存不是预先分配的。它是按需动态分配和解除分配的。由于压缩,一个完整的/dev/zram0
使用的内存是其大小的一半。
系统将正常使用 RAM 直到它已满,然后开始分页到 swap-on-zram,这与传统的驱动器上的交换相同。
按需动态增加交换大小
如果您使用的是 Fedora Linux,您应该已经安装并运行了 zram0。您可以运行以下命令进行验证:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--59DiewYr--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/lyabqfqdr7qrirhh7qh8.png)
现在,编辑位于/usr/lib/systemd/zram-generator.conf
的 zram-generator 配置文件
[](https://res.cloudinary.com/practicaldev/image/fetch/s--1yvk1cZh--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/4166q1cbfmxgufwwyydh.png)
并根据需要增加 SWAP 大小,例如:将其增加 1 倍 RAM 大小。
最后重新启动服务以使新配置生效。
[](https://res.cloudinary.com/practicaldev/image/fetch/s--QIEuRhCp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/1c6fwh66u39k01ju11k0.png)
通过运行以下命令验证交换大小是否已增加:
[](https://res.cloudinary.com/practicaldev/image/fetch/s--SVW7Dq2b--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev- to-uploads.s3.amazonaws.com/i/mz1ag1danms5v2yh3ewr.png)
参考文献
- https://fedoraproject.org/wiki/Changes/SwapOnZRAM
更多推荐
所有评论(0)