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

几周前,我发表了Pinebook Pro评论由于Raspberry Pi 4也是基于ARM的,因此上一篇文章中提到的一些优化非常适合它。我想分享这些技巧,并找出您是否具有相同的性能改进。

家庭服务器机房中安装Raspberry Pi之后我注意到在RAM不足的时候,它变得反应迟钝,甚至挂起。为了解决这个问题,我添加了ZRAM并对内核参数进行了一些更改。

Raspberry Pi上的ZRAM激活




ZRAM在名称为/ dev / zram0(或1、2、3等)的RAM中创建块存储。在那里记录的页面被压缩并存储在内存中。这样可以实现非常快的I / O,并且还可以通过压缩释放内存。

Raspberry Pi 4带有1、2、4或8 GB RAM。我将使用1 GB的型号,因此请根据您的型号调整说明。带有1 GB的ZRAM时,默认交换文件(慢!)将不常使用。我使用了这样的zram-swap脚本进行安装和自动配置。

上面链接中的存储库中提供了说明。安装:

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%的限制后立即开始记录,但是直到达到50%的dirty_ratio时,系统才会强制执行同步I / O。

如果您不可避免地用完RAM并开始切换到交换(如我的),那么这四行(与ZRAM一起使用)将有助于提高性能。知道这一事实,并考虑到ZRAM中的内存压缩,提前开始此交换要好三倍。

缓存上的压力有所帮助,因为我们实际上是在告诉内核:“嘿,听着,我没有多余的内存可用于缓存,因此请尽快清除它,并仅保留最常用/最重要的数据。”

即使减少了缓存,但随着时间的流逝,如果大部分已安装的内存被占用,内核将在更早的时候开始机会交换,以便处理器(压缩)和交换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几乎是1 GB的未压缩数据。一切都交给了ZRAM,没有东西进入慢得多的交换文件。自己尝试这些设置,它们可以在所有Raspberry Pi型号上使用。我不合适的冷冻系统已变成一种可行且稳定的系统。

在不久的将来,我希望继续并在安装ZRAM之前和之后通过系统测试的一些结果更新本文。现在我没有时间了。同时,请随时运行您自己的测试,并在评论中告知我们。Raspberry Pi 4就是具有这种设置的野兽。好好享受!

关于这个话题:

All Articles