群晖长时间运行变慢修改群晖vm.swappiness优化性能-降低swap使用率

2021-12-08
0评论
/
2550阅读
爱搜啊

最近在折腾群辉,昨天说了把群辉的《SSD缓存修改为群辉储存空间》的方法,整体还是不错的,但是最近发现群辉的噪音还是比较大的,经过这两天的折腾发现,关闭群辉的虚拟内存SWAP可以有效的降低群辉的噪音影响,内存小的机器请不要轻易尝试。

群晖DSM虽然在易用性方面非常不错,但是系统上的很多机制可以说是非常搓了,我的DS918+,自行添加内存到16G双通道,按理来说,NAS上跑的那点东西,16G内存是完全够用了,但就是这样,群晖也特别喜欢用虚拟内存,导致开机久了,我打开docker控制台,都要等7,8秒

原因就在于,群晖的配置都非常寒酸,那么高的价格只舍得配2G,4G的内存,DSM默认的vm.swappiness值设定为10,内存高的建议修改为1

所以,如果想要提高群晖系统的流畅度,首先就是要加大你的内存,之后修改DSM的vm.swappiness数值

ssh 进群晖,输入如下命令即可,不需要重启(对大部分Linux系统也适用)

临时生效版

之前的方法方法,虽说是永久生效,但是群晖并不会读取/etc/sysctl.conf,所以实际上,我们还是要重启后刷新一下sysctl.conf。不如直接开机时就执行修改swappiness的命令,这条命令会及时生效,调整swappiness值为1

sysctl -w vm.swappiness=1

永久生效版

sudo -I
echo "vm.swappiness = 1" >> /etc/sysctl.conf
# 调整SWAP使用积极性为1,不要设置为0,之后会讲
swapoff -a
swapon -a
# 临时关闭虚拟内存,让系统回收虚拟内存。开启虚拟内存
sysctl -p
# 刷新sysctl.conf

添加到群晖计划任务中

群晖DSM有一点设计的特别好,每一块硬盘里都装有DSM系统,并且大部分对DSM的修改,在关机后都会失效,确保了安全性。所以,我们需要设置计划任务,让开机时能够执行刚才那段命令

实测修改sysctl.conf参数后,并不会会在重启后失效,不会shell的可以在计划任务中执行,第一次重启后请务必关闭或删除本计划任务

具体操作如图所示

echo "vm.swappiness = 1" >> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p

修改群晖vm.swappiness优化性能

现在开机久了,系统也依旧健步如飞,反应速度明显快了很多

添加开机时刷新sysctl.conf

虽然群晖不会把sysctl.conf恢复为默认,但是不知道DSM修改了什么,默认竟然不会读取这里的参数,所以需要添加计划任务,开机时sysctl -p

也可以添加,效果是一样的,这种就不需要像上面的步骤那样修改/etc/sysctl.conf了

sysctl -w vm.swappiness=1

降低swap使用率

vm.swappiness优化

swappiness 设置为 1 比设置为 0 要好,因为在一些内核版本 swappiness 设置为 0 会触发系统 OOM-killer (注:Linux 内核的 Out of Memory ( OOM ) killer 机制)。

swappiness 的值的大小对如何使用 swap 分区是有着很大的联系的。swappiness=0 的时候表示最大限度使用物理内存,然后才是 swap 空间,swappiness = 100 的时候表示积极的使用 swap 分区,并且把内存上的数据及时的搬运到 swap 空间里面。linux 的基本默认设置为 60,具体如下:

cat /proc/sys/vm/swappiness
60

也就是说,你的内存在使用到 100-60=40%的时候,就开始出现有交换分区的使用。大家知道,内存的速度会比磁盘快很多,这样子会加大系统 io,同时造的成大量页的换进换出,严重影响系统的性能,所以我们在操作系统层面,要尽可能使用内存,对该参数进行调整。


本站附件分享,如果附件失效,可以去找找看

诚通网盘附件百度网盘附件


于2021-12-08发布