几周前我发布了
在您的计算机中安装 Raspberry Pi 后
在 Raspberry Pi 上激活 ZRAM
Raspberry Pi 4 配备 1、2、4 或 8 GB RAM。 我将使用 1GB 型号,因此请根据您的型号调整说明。 使用 1 GB ZRAM 时,默认交换文件(速度很慢!)的使用频率将降低。 我用了这个脚本
上面链接的存储库中提供了说明。 安装:
git clone https://github.com/foundObjects/zram-swap.git
cd zram-swap && sudo ./install.sh
如果你想编辑配置:
vi /etc/default/zram-swap
另外,您可以通过安装来激活ZRAM zram-tools
. 如果您使用此方法,请务必编辑配置 在文件中 /etc/default/zramswap
,并安装大约 1 GB ZRAM:
sudo apt install zram-tools
安装后,您可以使用以下命令查看ZRAM存储统计信息:
sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 265472 5
pi@raspberrypi:~ $
添加内核参数以更好地使用 ZRAM
现在让我们修复当 Raspberry Pi 在最后一刻切换到交换时系统的行为,这通常会导致冻结。 让我们在文件中添加几行 /etc/sysctl.conf中 并重新启动。
这些行 1) 会延迟不可避免的内存耗尽,增加内核缓存的压力和2) 他们更早开始为记忆耗尽做好准备,提前启动交换。 但通过 ZRAM 交换压缩内存会高效得多!
以下是要在文件末尾添加的行 /etc/sysctl.conf中:
vm.vfs_cache_pressure=500
vm.swappiness=100
vm.dirty_background_ratio=1
vm.dirty_ratio=50
然后我们重新启动系统或使用以下命令激活更改:
sudo sysctl --system
vm.vfs_cache_Pressure=500 增加缓存压力,从而增加内核回收用于缓存目录和索引对象的内存的倾向。 您将在更长的时间内使用更少的内存。 早期的交换抵消了性能的急剧下降。
vm.swappiness = 100 增加内核交换内存页面的积极程度的参数,因为我们首先使用 ZRAM。
vm.dirty_background_ratio=1 & vm.dirty_ratio=50 - 后台进程在达到1%限制时将立即开始记录,但系统不会强制同步I/O,直到dirty_ratio达到50%。
如果您有以下四行(与 ZRAM 一起使用时)将有助于提高性能 必将 RAM 耗尽,开始过渡到交换,就像我的一样。 知道这个事实,并且考虑到 ZRAM 中的内存压缩了三倍,最好提前启动此交换。
对缓存施加压力是有帮助的,因为我们本质上是在告诉内核,“嘿,看,我没有任何额外的内存可用于缓存,所以请尽快摆脱它,只存储最常用/最重要的数据。”
即使减少了缓存,如果随着时间的推移,大部分已安装的内存都被占用,内核也会更早地开始机会性交换,这样 CPU(压缩)和交换 I/O 就不会等到最后一刻,并在出现问题时立即使用所有资源。已经太晚了。 ZRAM 使用少量 CPU 进行压缩,但在大多数内存量较小的系统上,它对性能的影响比没有 ZRAM 的交换要小得多。
总之
我们再看一下结果:
pi@raspberrypi:~ $ free -h
total used free shared buff/cache available
Mem: 926Mi 471Mi 68Mi 168Mi 385Mi 232Mi
Swap: 1.2Gi 258Mi 999Mi
pi@raspberrypi:~ $ sudo cat /proc/swaps
Filename Type Size Used Priority
/var/swap file 102396 0 -2
/dev/zram0 partition 1185368 264448 5
ZRAM 中的 264448 几乎是 XNUMX GB 的未压缩数据。 所有内容都进入 ZRAM,没有任何内容进入速度慢得多的页面文件。 亲自尝试这些设置,它们适用于所有 Raspberry Pi 型号。 我无法使用、冻结的系统已经变成了一个功能齐全且稳定的系统。
在不久的将来,我希望继续更新这篇文章,并提供一些在安装 ZRAM 之前和之后测试系统的结果。 现在我只是没有时间做这个。 同时,请随意运行您自己的测试并在评论中告诉我。 Raspberry Pi 4 是具有这些设置的野兽。 享受!
关于这个问题:
Linux 性能:为什么您几乎总是需要增加交换空间 (2017)Linux 性能:几乎总是增加交换空间。 第 2 部分:ZRAM (2020)
来源: habr.com