为Ubuntu增加swap空间并调整性能

版本说明:

Raspberry Pi 3B+

Ubuntu 20.04 server

本文参考翻译自这篇文章

SWAP文件的设置

      Swap是硬盘存储的一部分,它被预留给操作系统。当RAM中不再有足够的空间来保存正在运行的应用程序数据的时候,硬盘中的Swap空间可以用来临时存储那些无法再在RAM中保存的数据,这可以增加服务器在其工作内存中保存的信息量。

先看看操作系统是不是已经预留了swap空间:

swapon –show

如果没有任何输出,说明没有swap空间。

再用free -h命令看看:

没想到,我的Raspberry Pi 3B+根本没有预留swap空间,这就是为什么系统经常会出现out of memory的原因。

一般来说,等于或是系统内存量的两倍是一个很好的起点。另一个很好的经验法则是,如果您只是将4G以上的交换用作RAM备用(fallback),那么它可能是不必要的。

查Raspberry Pi 3B+的RAM是多少,从free -h(或则cat /proc/meminfo)中看,RAM是1G。所以,按上述原则,设置1G或2G的SWAP比较合适。

建立一个叫swapfile的swap文件,尺寸是1G:

sudo fallocate -l 1G /swapfile

看一下情况:

ls -lh /swapfile

 为这个文件限制特权:

sudo chmod 600 /swapfile

 让swapfile变成swap空间:

sudo mkswap /swapfile

 开启这个swap文件:

sudo swapon /swapfile

然后看一下是不是起作用了:

 重启后上述关于swap的设置会失效,所以需要永久保存所有有关swap的设置。

先备份fstab文件:

sudo cp /etc/fstab /etc/fstab.bak

然后把swap的设置信息放到fstab的后面:

echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

关于swap的设置完毕。

有关swap文件的两种性能调整参数

swappiness

      swappiness参数是将数据从RAM交换到swap空间的频率。这是一个介于0和100之间的值,代表一个百分比。如果值接近零,除非绝对必要,否则内核不会将数据交换到硬盘。记住,与swap文件的交互是“昂贵的”,因为它们比与RAM的交互花费的时间要长得多,并且会导致性能显著降低。告诉系统不要太依赖swap通常会使系统更快。

     接近100的值将尝试将更多数据放入swap,以保持更多的RAM空间。根据应用程序的内存配置文件或服务器的用途,在某些情况下这可能会更好。

查看当前的swappiness:

cat /proc/sys/vm/swappiness

输出:60

对桌面系统来说60不是个坏的数字,但是对于服务器,应该接近0.

可以用sysctl改变swappiness的值:

sudo sysctl vm.swappiness=10

这是临时设置,如果需要将设置变成永久的,在etc/sysctl.conf中增加这项:

sudo nano /etc/sysctl.conf

在最底下增加:

vm.swappiness=10

vfs_cache_pressure

   此参数可以让系统选择在多大程度上缓存inodedentry信息,而不是其他数据。基本上,这是访问有关文件系统的数据,而访问这些数据通常会出现非常昂贵的查找和非常频繁的请求,所以系统缓存这些数据可以显著提高性能。

cat /proc/sys/vm/vfs_cache_pressure

输出:100

     由于当前的配置,我们的系统从缓存中删除inode信息的速度太快。我们可以设置为更保守的数字,如50:

sudo sysctl vm.vfs_cache_pressure=50

输出:vm.vfs_cache_pressure = 50

以上也是一个临时设置,永久保存的方法是把设置加到/etc/sysctl.conf中,如下:

sudo nano /etc/sysctl.conf

在最下面,输入:

vm.vfs_cache_pressure=50
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值