生产有一台主机Swap使用很高,一看内存使用率高,基本耗尽。

Linux内核为了提高读写效率与速度,会将文件在内存中进行缓存,这部分内存就是Cache Memory(缓存内存)。

即使你的程序运行结束后,Cache Memory也不会自动释放。

这就会导致你在Linux系统中程序频繁读写文件后,你会发现可用物理内存变少。

当系统的物理内存不够用的时候,就需要将物理内存中的一部分空间释放出来,以供当前运行的程序使用。

那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap空间中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

这样,系统总是在物理内存不够时,才进行Swap交换。

Swap分区在什么时候会使用,是受参数swappiness来控制的。

这个参数值可为 0-100,控制系统 swap 的使用程度。

高数值可优先系统性能,在进程不活跃时主动将其转换出物理内存。

低数值可优先互动性并尽量避免将进程转换处物理内存,并降低反应延迟。

默认值为 60,这只是一个权值,不是一个百分比值,涉及到系统内核复杂的算法。

# cat /proc/sys/vm/swappiness

通常,Swap使用过高的处理方法主要有:

1.扩物理内存;

2.调整swappiness参数;

3.扩Swap。

查看发现,我们的swappiness设置的是10,也就是说当物理内存大约剩余10%时,就会使用Swap分区,所以说没有什么调整空间了,当然调成0也可以。

这里我们采用的是扩物理内存的方法。

联系主机机侧扩容,扩容后物理内存可用20多G,但是Swap不会释放。

这时候,就想知道是哪些程序使用了Swap,于是通过脚本查询出使用Swap的top10进程。

# cat check_swap.sh

###########################

#!/bin/bash

pids=`for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{j=j+$2}END{print '"$i"',j/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10 | awk '{print $1}'`

for pid in ${pids}; do  ls -lt /proc/${pid}/cwd; done

for i in $( cd /proc;ls |grep "^[0-9]"|awk ' $0 >100') ;do awk '/Swap:/{j=j+$2}END{print '"$i"',j/1024"M"}' /proc/$i/smaps 2>/dev/null ; done | sort -k2nr | head -10

###########################

增加内存资源后,根据脚本找到相关pid和进程,重启,释放swap。

参考

Swap使用过高处理

https://mp.weixin.qq.com/s/IMfmw_lfROT2YDN-gTeizA

为什么大部分应用的运行都建议关 swap?

https://www.jianshu.com/p/8690d6bcf059

【swap】swap使用过高的处理方法相关推荐

  1. Linux Swap空间利用率过高

    在单独部署的mysql数据库服务器中发现,在高并发的情况下发现内存不够用,进一步发现swap的利用率很高.公司的DBA提了两点建议:1.建议先减小数据库缓冲池(buffer pool)的大小:2.进行 ...

  2. linux free 命令以及系统内存占用过高的处理方法

    linux free 命令以及系统内存占用过高的处理方法 [root@localhost ~]# free -mtotal used free shared buff/cache available ...

  3. 自动驾驶中基于车道线的高清制图方法回顾

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者 | 黄浴 来源 | 知乎.hdmap 链接 | https://zhuanlan.zhihu.c ...

  4. MPB:中科院城环所苏建强、朱永官等-功能基因高通量定量方法

    为进一步提高<微生物组实验手册>稿件质量,本项目新增大众评审环节.文章在通过同行评审后,采用公众号推送方式分享全文,任何人均可在线提交修改意见.公众号格式显示略有问题,建议电脑端点击文末阅 ...

  5. Mysql CPU占用高的问题解决方法小结

    Mysql CPU占用高的问题解决方法小结 参考文章: (1)Mysql CPU占用高的问题解决方法小结 (2)https://www.cnblogs.com/shuaiandjun/p/566204 ...

  6. 在大规模 Kubernetes 集群上实现高 SLO 的方法

    作者 | 蚂蚁金服技术专家 姚菁华:蚂蚁金服高级开发工程师 范康 导读:随着 Kubernetes 集群规模和复杂性的增加,集群越来越难以保证高效率.低延迟的交付 pod.本文将分享蚂蚁金服在设计 S ...

  7. antimalware service executable占用内存过高_Win10系统svchost.exe进程占用内存和网速过高的解决方法...

    我们在使用Windows10系统的过程中,不少用户一旦发现电脑异常,例如异常卡顿,就会查看一下任务管理器,是否有进程过高占用了CPU.内存.网络等,而在任务管理器中发现了一个名称为"svch ...

  8. [html] 列举几种多列等高布局的方法

    [html] 列举几种多列等高布局的方法 1, 使用table布局 `.row { display: table; }.row > * { display: table-cell; }2, 使用 ...

  9. windows7系统内存占用过高的解决方法

    电脑的内存空间取决了电脑的运行流畅度,时间一久内存就会爆满导致占用过高这样就会使电脑变得延迟,那么windows7系统内存占用过高怎么办呢?下面就一起来看看windows7系统内存占用过高的解决方法吧 ...

  10. php正则去掉width=,关于php使用正则去除宽高样式的方法

    因工作需要,需要采集html,并把html内容保存到数据库中.为了避免影响使用,宽高样式需要删除.例如图片和p中的width, height等. 不过采集到的html中,样式的写法各有不同,例如大小写 ...

最新文章

  1. linux平台下 延迟工作队列实例
  2. android logger的使用
  3. 销售Invoice管理流程
  4. 人工智能技术结合制造业,是学术研究还是落地方案?!
  5. 实现Redis用户会话 - 1
  6. WebPart的使用
  7. mysql.sock 文件解析
  8. Winform 水印TextBox
  9. 真假难辨,AI就能分得清?
  10. 用R读取Excel的新方法
  11. 恢复计算机硬盘数据,计算机数据恢复,小编教您如何恢复计算机数据
  12. 人工智能AI系列 - 问答系统
  13. 无线AP密码破解方法
  14. 如何解决微软自带输入法突然变成繁体
  15. OPTEE学习笔记 - IPC
  16. UGUI事件系统——事件接口
  17. NATS_08:NATS客户端Go语言手动编写
  18. 常规计算机 符号键是,有谁知道电脑键盘上的标示符号都代表什么意思
  19. Linux服务详解(主要基于RedHat系的及Centos默认服务详解)(综合整理)
  20. 电脑处理器多核心好还是高频率好?

热门文章

  1. BI是什么意思?在企业应用中有哪些好处?
  2. Python要点及其环境搭建+Pycharm简单使用教程
  3. 格式工厂 vtt字幕 加入视频
  4. env: bash\r: No such file or directory
  5. Java Web学习day25------Vue和综合案例
  6. 实战HTML:部分美团首页静态界面
  7. 知识普及 上海宝付带你揭穿金融诈骗“小把戏”
  8. validity属性
  9. 日语动词变形(转载)
  10. mysql evict_SpringBoot+Mybatis+MySQL实现读写分离