前言

如果本文存在问题,请指出,谢谢!



一、具体表现

例如下图

在这里插入图片描述

注:图示版本为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空间

转载请说明出处

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐