ubuntu 内存占用过高导致卡死 解决办法
一、具体表现
例如下图
注:图示版本为ubuntu18.04,现在我用的是ubuntu20.04
二、原因
查阅到了一些资料
在Linux中经常发现空闲内存很少,似乎所有的内存都被系统占用了,表面感觉是内存不够用了,其实不然。这是Linux内存管理的一个优秀特性,在这方 面,区别于 Windows的内存管理。主要特点是,无论物理内存有多大,Linux 都将其充份利用,将一些程序调用过的硬盘数据读入内存,利用内存读写的高速特性来提高Linux系统的数据访问性能。
Linux 的这一特性,主要是利用空闲的物理内存,划分出一部份空间,做为 cache 和 buffers ,以此提高数据访问性能。
Linux 优先使用物理内存,当物理内存还有空闲时,linux是不会施放内存的,即时占用内存的程序已经被关闭了(这部分内存就用来做缓存了)。也就是说,即使你有很多内存,用过一段时间后,也会被占满。这样做的好处是,启动那些刚开启过的程序、或是读取刚存取过得数据会比较快,对于服务器很有好处。
总结一下,我的这种情况就是swap空间开的太小了
三、解决方案
把swap空间调大(建议在物理内存的两倍以上)
首先用gparted改一下磁盘分区,然后再配置(这两步缺一不可)
可以参考一下这篇博客,写的很好(感谢)
顺便提醒一下,每个人电脑都存在差异,我在参考那篇博客时就出现了一些不同之处
因为我写本文的时候买的16GB内存条还没到,所以提前调成60GB的swap空间了 (好像大了点)
经过实验证明,目前该方法完全解决了之前的问题(再次道歉 qwq)
如果要释放swap空间的话,可以用以下指令
sudo su
swapoff -a
swapon swapfile 注:也有用 swapon -a的,不过我这不行
放几张图吧…(开了一堆窗口,然后不会卡死了)
全部关掉以后,一切正常!!成功!!
四、其他优化
有时候缓存会过高,可以写个脚本及时释放缓存
总结
调大swap空间