程序运行缓慢,查看内存剩余的时候发现Linux系统内存还有60G剩余就开始使用swap交换区了。发现vm/swappiness设置是默认值60,也就是内存使用超过40%(100-60)的时候就会使用交换区了。

系统把物理内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到Swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。

这个swap交换区是从硬盘中预先划分一定的空间,所以使用swap交换区就需要在硬盘和内存间读写,增加IO,影响系统性能。

查看vm.swappiness

cat /proc/sys/vm/swappiness

设置vm.swappiness=0 后并不代表禁用swap分区,只是告诉内核,能少用到swap分区就尽量少用到,设置vm.swappiness=100的话,则表示尽量使用swap分区,默认的值是60

修改vm.swappiness
    echo 0 > /proc/sys/vm/swappiness
永久设置
    /etc/sysctl.conf增加一行 vm.swappiness = 0

可以使用vmstat命令查看swap交换区使用情况

si

  • Amount of memory swapped in from disk (/s).
  • 从磁盘交换到swap虚拟内存的交换页数量,单位:KB/秒。如果这个值大于0,表示物理内存不够用或者内存泄露了

so

  • Amount of memory swapped to disk (/s).
  • 从swap虚拟内存交换到磁盘的交换页数量,单位:KB/秒,如果这个值大于0,表示物理内存不够用或者内存泄露了

内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗。

当看到空闲内存(free)很少的或接近于0时,就认为内存不够用了,这个是不正确的。不能光看这一点,还要结合si和so,

如果free很少,但是si和so也很少(大多时候是0),那么不用担心,系统性能这时不会受到影响的。

当内存的需求大于RAM的数量,服务器启动了虚拟内存机制,通过虚拟内存,可以将RAM段移到SWAP DISK的特殊磁盘段上,

这样会 出现虚拟内存的页导出和页导入现象,页导出并不能说明RAM瓶颈,虚拟内存系统经常会对内存段进行页导出,

但页导入操作就表明了服务器需要更多的内存了, 页导入需要从SWAP DISK上将内存段复制回RAM,导致服务器速度变慢。

Linux系统内存还有剩余就开始使用swap交换区了相关推荐

  1. sql怎么把小数变百分比_云计算基本技能有哪些 怎么监控Linux系统内存

    云计算基本技能有哪些?怎么监控Linux系统内存?Shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口,它接收用户输入的命令并把它送入内核去执行.掌握Shell脚本是对云计算运维工程师的 ...

  2. Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园

    Linux系统内存管理之伙伴系统分析 - 旭东的博客 - 博客园 Linux系统内存管理之伙伴系统分析 今天去面试,一位面试官提到了内存管理的伙伴系统,当时就懵了,因为根本就没有听说过.晚上回来在实验 ...

  3. linux系统内存执行elf的多种方式

    一.前言 无文件(fileless)恶意软件攻击现在已经越来越流行,这一点并不奇怪,因为这种技术通常不会留下蛛丝马迹.本文的重点不是介绍如何在Windows RAM中执行程序,我们的目标是GNU/Li ...

  4. Problem 64 如何设置Linux系统内存回收的阀值?

    Problem 64 如何设置Linux系统内存回收的阀值? Ans: Linux内核的策略是最大程度的利用内存cache 文件系统的数据,提高IO速度,虽然在机制上是有进程需要更大的内存时,会自动释 ...

  5. Linux 系统内存分析

    1. 内存基本介绍 1.计算机基本结构: 电脑之父--冯·诺伊曼提出了计算机的五大部件:输入设备.输出设备.存储器.运算器和控制器 如图: 输入设备:键盘鼠标等 CPU:是计算机的运算核心和控制核心, ...

  6. 嵌入式linux+io+优化,嵌入式Linux系统内存优化使用方法研究

    [摘要] 嵌入式系统功能的提高,占用了较大内存空间,继而时常出现运行无响应.基于用户方面看,由于系统内存问题影响运行,针对系统内存与进程应用状态研究,可以调整系统数值与执行文件elf分析,进行系统优化 ...

  7. 707-详解32位Linux系统内存地址映射

    详解32位Linux系统内存地址映射 我们先看一段简单的C程序: 我们先来看一张图: 我们平时所说的x86 32位指的是:80386往后到现在的同一个体系的CPU处理芯片,但是x86这个芯片是从808 ...

  8. linux系统内存dump机制介绍(一)--kdump

    本文来自 网易云社区 . kdump的原理介绍 按照linux系统的设计哲学,内核只提供dump内存的机制,用户想要dump什么样的内存,dump多少内存是属于策略问题,由用户来决定. 在真实的使用场 ...

  9. Linux系统内存知识总结

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取 来源:22j.co/dJ29 Linux 内存是后台开发人员,需要深入了解 ...

最新文章

  1. php购票排位_用PHP+MySQL实现12306购票和退票以及余票查询逻辑
  2. Spring 3.1:缓存和EhCache
  3. Netty工作笔记0020---Selectionkey在NIO体系
  4. linux系统安装如何设置raid,在RAID磁盘阵列下如何搭建Linux系统
  5. BZOJ1051|HAOI2006受欢迎的牛|强连通分量
  6. Oracle入门《Oracle介绍》第一章1-4 Oracle 用户管理
  7. python文件操作的方法_python文件操作的方法介绍
  8. 微信小程序API之getSystemInfo
  9. 【数学建模】BP神经网络算法模型
  10. OSN1800V OSN1800II OSN1800I 华为全新原包装分组增强型多业务光传送平台
  11. 网络安全信息收集的思路
  12. GDB 调试错误解决
  13. 做外链的六个有效技巧
  14. 2021年化工自动化控制仪表考试资料及化工自动化控制仪表免费试题
  15. 计算机网络嗅探实验,网络嗅探与欺骗实验
  16. 2019~ROS暑期学校~ROS Summer School in China~分享
  17. 分支与循环结构测试题(有答案版)
  18. val和var的区别
  19. {2018.4.12}荀(gou)彧(huo)同学的第一次考试小总结
  20. SilverLight合计行设计

热门文章

  1. 【方案分享】地产项目2022年新春1月系列暖场活动策划方案:新年置业,如虎添翼.pptx(附下载链接)...
  2. 【白皮书分享】2021汽车产业数字化转型白皮书-腾讯研究院.pdf(附下载链接)...
  3. 她看:2021年95后女性人群洞察与媒体消费趋势前瞻.pdf(附下载链接)
  4. 从 200 多篇顶会论文看预训练语言模型研究进展
  5. KBQA相关论文分类整理
  6. cydia源_Cydia错误提示解决大全
  7. goto php 源码,GoToPHP
  8. php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)
  9. Leetcode每日一题:22.generate-parentheses(括号生成)
  10. 如何解决ValueError: unknown is not supported