19 | 案例篇:为什么系统的Swap变高了(上)
- 可以在应用程序中,通过系统调用 fsync ,把脏页同步到磁盘中;
- 也可以交给系统,由内核线程 pdflush 负责这些脏页的刷新。
文件页
匿名页
Swap 原理
- 所谓换出,就是把进程暂时不用的内存数据存储到磁盘中,并释放这些数据占用的内存。
- 而换入,则是在进程再次访问这些内存的时候,把它们从磁盘读到内存中来。
- 剩余内存小于页最小阈值,说明进程可用内存都耗尽了,只有内核才可以分配内存。
- 剩余内存落在页最小阈值和页低阈值中间,说明内存压力比较大,剩余内存不多了。这时 kswapd0 会执行内存回收,直到剩余内存大于高阈值为止。
- 剩余内存落在页低阈值和页高阈值中间,说明内存有一定压力,但还可以满足新内存请求。
- 剩余内存大于页高阈值,说明剩余内存比较多,没有内存压力。
pages_low = pages_min*5/4
pages_high = pages_min*3/2
NUMA 与 Swap
$ numactl --hardware
available: 1 nodes (0)
node 0 cpus: 0 1
node 0 size: 7977 MB
node 0 free: 4416 MB
...
$ cat /proc/zoneinfo
...
Node 0, zone Normalpages free 227894min 14896low 18620high 22344
...nr_free_pages 227894nr_zone_inactive_anon 11082nr_zone_active_anon 14024nr_zone_inactive_file 539024nr_zone_active_file 923986
...
- pages 处的 min、low、high,就是上面提到的三个内存阈值,而 free 是剩余内存页数,它跟后面的 nr_free_pages 相同。
- nr_zone_active_anon 和 nr_zone_inactive_anon,分别是活跃和非活跃的匿名页数。
- nr_zone_active_file 和 nr_zone_inactive_file,分别是活跃和非活跃的文件页数。
- 默认的 0 ,也就是刚刚提到的模式,表示既可以从其他 Node 寻找空闲内存,也可以从本地回收内存。
- 1、2、4 都表示只回收本地内存,2 表示可以回写脏数据回收内存,4 表示可以用 Swap 方式回收内存。
swappiness
- 对文件页的回收,当然就是直接回收缓存,或者把脏页写回磁盘后再回收。
- 而对匿名页的回收,其实就是通过 Swap 机制,把它们写入磁盘后再释放内存。
小结
- 文件页的回收比较容易理解,直接清空,或者把脏数据写回磁盘后再释放。
- 而对匿名页的回收,需要通过 Swap 换出到磁盘中,下次访问时,再从磁盘换入到内存中。
19 | 案例篇:为什么系统的Swap变高了(上)相关推荐
- linux性能优化实战 倪朋飞,Linux性能优化实战:系统的swap变高(09)
一.实验环境 1.操作系统 root@openstack:~# lsb_release -a No LSB modules are available. Distributor ID:Ubuntu D ...
- 【linux性能优化】系统Swap变高原因分析
一.内存处理 1.1 内存资源紧张的应对 当发生了内存泄漏或者运行大内存的应用程序,导致系统的内存资源紧张时,系统又会如何应对呢? 这其实会导致两种可能结果,内存回收和OOM杀死进程 OOM杀死进程 ...
- 10 | 案例篇:系统的软中断CPU使用率升高,我该怎么办?
上一期我给你讲了软中断的基本原理,我们先来简单复习下. 中断是一种异步的事件处理机制,用来提高系统的并发处理能力.中断事件发生,会触发执行中断处理程序,而中断处理程序被分为上半部和下半部这两个部分. ...
- 07 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(上)
上一节,我用一个 Nginx+PHP 的案例,给你讲了服务器 CPU 使用率高的分析和应对方法.这里你一定要记得,当碰到无法解释的 CPU 使用率问题时,先要检查一下是不是短时应用在捣鬼. 短时应用的 ...
- 06 | 案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过 ...
- 08 | 案例篇:系统中出现大量不可中断进程和僵尸进程怎么办?(下)
上一节,我给你讲了 Linux 进程状态的含义,以及不可中断进程和僵尸进程产生的原因,我们先来简单复习下. 使用 ps 或者 top 可以查看进程的状态,这些状态包括运行.空闲.不可中断睡眠.可中断睡 ...
- 40 | 案例篇:网络请求延迟变大了,我该怎么办?
上一节,学习了碰到分布式拒绝服务(DDoS)的缓解方法.简单回顾一下,DDoS 利用大量的伪造请求,导致目标服务要耗费大量资源,来处理这些无效请求,进而无法正常响应正常用户的请求. 由于 DDoS 的 ...
- 41 | 案例篇:如何优化 NAT 性能?(上)
上一节,探究了网络延迟增大问题的分析方法,并通过一个案例,掌握了如何用 hping3.tcpdump.Wireshark.strace 等工具,来排查和定位问题的根源. 简单回顾一下,网络延迟是最核心 ...
- MUI框架:栅格系统 + grid宫格布局 - 案例篇
MUI框架 · 自定义宫格布局 · 应用案例: 通过使用MUI框架的 栅格系统 + grid宫格布局 ,覆盖源码样式,以达到完美的页面效果. 效果图: 点击动画效果不再演示,具体效果参考源码效果! 全 ...
最新文章
- 125万奖金!“中国GPT-3”赛事来了
- 内核在哪个文件夹_Apache Kafka内核深度剖析
- StarlingMVC Framework 原理。。。
- 球面三角基本名称及性质、基本定理和公式、解法
- DL之CNN:卷积神经网络算法应用之卷积神经网络实践技巧(DA/DP/WI/BN/H/O/R)、优化技术经验之详细攻略
- (原创) 对饱和状态NPN晶体管内部机制的理解分析
- java基础----数字签名算法的介绍
- java符号引用 直接引用_java虚拟机的符号引用和直接引用
- 关于Image创建的内存管理
- Redis入门之Redis安装、配置及常用指令
- Spring + Ibatis + MySql实例详解
- vue.js 添加 fastclick的支持
- 浅谈Oracle执行计划
- hadoop启动_hadoop服务快速部署
- python二元一次方程组用鸡兔同笼的思路来写编程_应用二元一次方程组——鸡兔同笼教学设计...
- win7升级win10正式版_如何在win7系统中升级win10
- U盘快捷方式文件病毒解决方法
- photoshop使用“选择并遮住”功能快速扣头发
- folium基础内容介绍
- RNA-seq——快速下载SRA数据、解决fq文件中测序质量全为 ‘?‘ 的问题
热门文章
- 华为云welink考试试题_华为内部开启WeLink项目,华为云是这样考虑的-通信/网络-与非网...
- keil4如何设置自动缩进_如何设置私聊自动回复?
- java ftp复制文件_如何使用Java将FTP服务器上的文件复制到同一服务器上的目录中?...
- 五大地形等高线特征_高考复习地形特征描述专题
- 计算机组装课的评课记录,听课反思信息技术课堂教学心得体会
- php 能处理死循环吗,详解PHP死循环写法和作用
- sublime text3 添加到右键菜单
- mongodb 安装启动
- 用 Python 将微信热文转换成Word文档 | 神级操作
- Chrome现在也能编辑pdf文件了!64位安卓版上线