精选文章 内存还剩余很多,却使用 swap 分区

内存还剩余很多,却使用 swap 分区

作者:星河子_YumWisdom 时间: 2021-02-05 09:38:23
星河子_YumWisdom 2021-02-05 09:38:23
【摘要】内存还剩余很多,却使用 swap 分区 
  
原因 
今天早上 AI 部门工程师来找我说,你会给 ubuntu 设置 swap 分区吗,我们机器内存好像不咋够用了,给我搞个 swap 分区吧!我说好的,这么简单分分钟钟的事情,我三下五除二的就给他搞定了,给他说好了,你用吧,但是过一会他就跑来说,你给我弄好 swap 分区之后这台机器就特别特别卡,你能帮我看看什么问题吗? 
  
排查 
我...

内存还剩余很多,却使用 swap 分区

 

原因

今天早上 AI 部门工程师来找我说,你会给 ubuntu 设置 swap 分区吗,我们机器内存好像不咋够用了,给我搞个 swap 分区吧!我说好的,这么简单分分钟钟的事情,我三下五除二的就给他搞定了,给他说好了,你用吧,但是过一会他就跑来说,你给我弄好 swap 分区之后这台机器就特别特别卡,你能帮我看看什么问题吗?

 

排查

我登录到机器上,查看机器内存free -h结果如下图

内存还剩余很多,却使用 swap 分区1

 

从结果可以看出来,机器在内存还剩 148G 但是 swap 分区却完全被使用完了,这说明我给他创建好 swap 分区之后完全他完全不使用内存了,这是什么情况,查阅资料得到如下解决办法

 

解决问题

swappiness的值的大小对如何使用swap分区是有着很大的联系的。

swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness=100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。

当该参数= 0,表示只要有可能就尽力避免交换进程移出物理内存; 该 参数=100,这告诉内核疯狂的将数据移出物理内存移到swap缓存中。

这个值只是一个Linux在判断是否交换内存(swap)的一个“倾向”参考值,而并不是说,设置为0以后,Linux就完全不会使用内存交换空间

然后 ubuntu 和 centos 一般默认都是 60 ,就是当内存使用=(100%-60%)*内存总量

cat /proc/sys/vm/swappiness
60

所以才会出现我们上面那种情况,这个时候我们只需要调整这个值即可,

sysctl vm.swappiness=10 #临时修改
echo "vm.swappiness=10" >> /etc/sysctl.conf #永久修改
sysctl -p #生效

改完之后就会使用物理内存了,刚才卡的情况也解决了

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

上一篇:带有Three.js的WebGL –第4课

下一篇:一篇文章带你详解 HTTP 协议(网络协议篇一)

您可能感兴趣

  • fdisk分区命令使用总结

    fdisk 基本说明: fdisk 分区命令适合2T一下的分区设置 fdisk -l 跟设备名列出当前分区信息,不跟信息列出所有系统能找到的分区。 命令格式:fdisk /dev/sdx 对sdb磁盘进行分区管理 [root@bear ~]# fdisk /dev/sdb Device contains...

  • 内存溢出: PermGen space

    1.使用SHH做项目产生Java.lang.OutOfMemoryError: PermGen space异常 解决方法:PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这一部分用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen spac...

  • Linux基础之磁盘的分区,格式化,校验与维护

    关于硬盘的物理组成我在这里就不多加赘述了,就简要的介绍几个概念吧。 扇区为最小的物理存储单位,每个扇区为512B将扇区组成一个圆就是柱面,柱面是分区的最小单位第一个扇区最重要,里面有硬盘的主引导记录(MBR)及分区表,其中MBR占用了446B,分区表占用64B 各种借口的硬盘在Linux中的文件名分别为: /dev/sd[a-...

  • linux的分区方法

    导读linux分区方法,不同的人有不同的方法,反正没有统一的方法。在分区方面,我觉得根据自己的实际情况来分是最好的。玩linux也有好几年了,下面说一下,我在分区方面的一些经验。 一,个人用 如果是个人用,就没必要分那么多区,分一个区,或者二个区就行了。 分一个区,就要一个根分区就行了/,我的多系统里面的linux都是一个分区。 分二个区,一个...

  • 关于C++0x内存模型和序列点的一些思考

    Several questions about sequence point and concurrent memory model. (mostly focused on N2052) 这几天断断续续一直在看关于C++0x的并发内存模型的proposal,这堆proposal显然是所有0x proposals里面最困难的。看的时候问题不...

  • x64/vista/2003 sp1下使用ZwOpenSection直接读写物理内存

        习惯于在应用程序用ZwOpenSection打开"Device"PhysicalMemory访问物理内存的朋友可能要郁闷了,微软出于安全考 虑的原因,在x64/vista/2003 sp1系统中所有用户模式的程序将不能访问"Device"PhysicalMemory对象。    经过测试,原来应用程序在2k/xp中使用Zw...

  • mmap内存映射写入txt文件

    mmap内存映射写入txt文件 内存映射写入应该是一个比较简单的操作,网上也有线程的例子,不过我自己在使用时碰到了一点小问题,所以总结了下,有相似情况的小伙伴们可以参考下哈。另外贴一篇别人的博客,写得很详细,刚接触的...

  • 内存泄漏与内存溢出的区别

    内存溢出 out of memory,是指程序在申请内存时,没有足够的内存空间供其使用,出现out of memory;比如申请了一个integer,但给它存了long才能存下的数,那就是内存溢出。 内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无...

CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
内存还剩余很多,却使用 swap 分区介绍:华为云为您免费提供内存还剩余很多,却使用 swap 分区在博客、论坛、帮助中心等栏目的相关文章,同时还可以通过 站内搜索 查询更多内存还剩余很多,却使用 swap 分区的相关内容。| 移动地址: 内存还剩余很多,却使用 swap 分区 | 写博客