Linux工具性能调优系列三:swap问题定位

一,预备知识

1.1 什么是swap

swap当我们指的名词的时候,它可以是一个分区,也可以是一个文件,是操作系统中一个存放从内存中置换出的数据的地方。
当我们指的是一个动词时候,代表的是从物理内存交换数据到swap分区这个动作。

1.2 为什么会swap

(1) 当物理内存不够用时候,会根据特定的算法,把一部分内存交换到swap分区(此时还会伴随着高IO)。但是并不是所有的内存都可以被交换到swap分区。
(2) kswapd进程周期性对内存进行检查,如果发现高于水位线,则触发swap,此举是为了不让系统剩余内存很少,防止出现突然的大内存申请。这块暂不深入讲解,后续再补充。

1.3 swap的到底是什么

首先我们要知道,内存管理将内存分为active和inactive,进程用户空间使用的映射包括了匿名映射(anon)和文件映射(file)。所有一共有active anon,inactive anon,active file,inactive file。对于文件映射,由于本身是磁盘空间中的文件,所有它不会被swap,当需要释放时候,脏数据直接写回磁盘,其他数据直接释放即可。内存交换到swap,肯定是交换不活跃的数据,所有,inactive anon是最主要的被交换的内存。那么对于操作系统来说,当我需要回收内存时候,你说它是针对文件映射好,还是针对匿名映射好,这就涉及到了一个参数:swapiness

1.3.1 swapiness

swapiness是设置内存回收时候,更倾向于回收文件映射还是匿名映射,在/proc/sys/vm/swappiness设置值。对于swapiness=100,那么两者之间的权重是一致的,值越小,越倾向于回收文件映射,不过如果达到系统高水位线,还是会swap,除非直接使用swapoff -a等手段关闭系统swap。

1.3 swap的好坏

swap的好处是当内存不足时候,可以将一部分交换出去,不会触发oom-killer。跑得慢总比不能跑好。
swap的坏处是交换时候,会触发高IO,同时会降低系统的性能。对于我们隔离做的不好的时候,会影响到其他应用的性能。

二,工具选择

一个工具往往具有多种用途,但是本文只说明针对swap问题

工具名称 使用姿势
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值