Raspberry Pi 性能:添加 ZRAM 并更改内核参数

几周前我发布了 Pinebook Pro 评测。 由于Raspberry Pi 4也是基于ARM的,所以上一篇文章中提到的一些优化非常适合它。 我想分享这些技巧,看看您是否能体验到相同的性能改进。

在您的计算机中安装 Raspberry Pi 后 家庭服务器机房 我注意到,在 RAM 短缺的时候,它会变得非常反应迟钝,甚至冻结。 为了解决这个问题,我添加了ZRAM并对内核参数进行了一些更改。

在 Raspberry Pi 上激活 ZRAM

Raspberry Pi 性能:添加 ZRAM 并更改内核参数

内存 在 RAM 中创建一个名为 /dev/zram0(或 1、2、3 等)的块存储。 写入的页面被压缩并存储在内存中。 这允许非常快的 I/O,并且还可以通过压缩释放内存。

Raspberry Pi 4 配备 1、2、4 或 8 GB RAM。 我将使用 1GB 型号,因此请根据您的型号调整说明。 使用 1 GB ZRAM 时,默认交换文件(速度很慢!)的使用频率将降低。 我用了这个脚本 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 是具有这些设置的野兽。 享受!

关于这个问题:

来源: habr.com

添加评论