Ubuntu 16.04 系统 Swp缓存导致的卡顿及其解决

前言

Ubuntu系统针对内存不足问题设立了swp缓存区域,即用硬盘区域存放内存数据,以扩充内存。而我们知道内存条与硬盘,特别是机械硬盘的读取速度是有巨大差距的,而内存需要快速地读写,使得swp区域拖慢系统速度。

Ubuntu安装时会有 swp 区域的指定,为了优化考虑,一般来说在内存充足情况下最好不给定。

而在下的电脑是台机械硬盘,安装时不知看的哪里的教程稀里糊涂给swp区域 8个G.. 于是,在开VS code时经常出现卡到动弹不得的情况,迫不得已还要关闭 VS Code的 cpp-tools 插件,在没有索引和跳转下当纯编辑器用,实在是窝囊。

在疫情期间差点准备剁手买固态时,突然发现了曙光。

 

操作

1、 观察自己的缓存区域设定。

推荐工具 htop , 若未安装可以使用指令:

sudo apt-get install htop 

htop

注意到swp条右侧,标注了当时使用和总计的 swp区域。 若正在使用的swp区域 >0 Mb,说明硬盘在快速读写以充当内存的作用。此时若你的机器使用机械硬盘,很可能卡顿。

 

2、 观察硬盘 IO 读写。

sudo apt-get install iotop

iotop

可以尝试做一些消耗内存的事情,观察是否产生硬盘读写。可以侧面印证这部分高频率的读写正是系统被拖慢的原因。

 

3.1 降低 swp 区域权重

部分软件需要swp来正常运行,因此最好不要直接全部关闭。笔者发现若全部关闭会在编译时更大几率造成内存爆满使得电脑卡死。

默认情况下,可以用指令看到 swp 所占比率。即内存消耗分配多少给swp:

cat /proc/sys/vm/swappiness

我们调低该比率到 0.1 即可实现优化:

sudo sysctl vm.swappiness=10

想实现开机自动完成设置需要修改:

sudo vim /etc/sysctl.conf

在最尾部添加一行:
vm.swappiness = 10

笔者实际测试该方法是比较稳定而有效的。

 

3.2 一劳永逸: 关闭 swp

该方式不推荐。供学习使用。

sudo swapoff -a

执行后,系统将缓慢开始释放掉 swp 缓存中存放的内容,你可以看到 htop 中 swp的总量在减少。当减少到0时,执行完毕。此时系统重新返老还童,健步如飞啦!

若希望永久关闭,请转参考链接。

 

参考

https://blog.csdn.net/CSDN_duomaomao/article/details/75142769?locationNum=8&fps=1

 

 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值