写在前面

Linux内核中有一个非常重要的内核线程kswapd,它负责在内存不足时回收页面。kswapd内核线程初始化时会为系统中每个内存结点创建一个名为“kswapd%"内核线程。对于UMA架构下常常是kswapd0线程。

因此我们可以把kswapd0看作是系统的虚拟内存管理程序,如果物理内存不够用,系统就会唤醒 kswapd0 进程。但是需要特别注意的是,由于kswapd0分配磁盘交换空间作缓存,因此会占用大量的CPU资源。

术语

swap

指的是一个交换分区或文件。负责在内存不足时,将部分内存上的数据交换到swap空间上,以便让系统不会因内存不够用而导致oom或者更致命的情况出现。所以,当内存使用存在压力,开始触发内存回收的行为时,就可能会使用swap空间。

在Linux上可以使用swapon -s命令查看当前系统上正在使用的交换空间有哪些,以及相关信息:

kswapd

Linux内核中有一个非常重要的内核线程kswapd,它负责在内存不足时回收页面。

watermark_scale_factor
=================&

Linux内存从0到1学习笔记(9.1,内存优化调试之kswapd0触发原理)相关推荐

  1. Linux内存从0到1学习笔记(11.2 内存优化方案之内存压缩zram)

    写在前面 zram是Linux内核提供的一种虚拟内存压缩功能,通过在将一部分内存模拟成块设备,并将压缩后的内存写到这部分模拟的块设备中,直到必须使用硬盘上的交换空间,zram 本质是就是一个块设备. ...

  2. Linux内存从0到1学习笔记(4,TLB)

    一.TLB简介 Kernel初始化的时候,会在初始化内存中创建页表:而处理器读取指令和数据的时候需要首先通过MMU查表得到物理地址,然后在访问物理地址读取指令或数据.MMU查表过程汇中需要4次访问内存 ...

  3. Linux内存从0到1学习笔记(6.6,物理内存初始化之预留内存)

    写在前面 前面的章节中有提到过,memblock分配器会将内存划分为动态管理的内存(保存在memblock的memory type的数组)和静态预留的内存(保存在memblock的reserved t ...

  4. Linux内存从0到1学习笔记(6.7,物理内存初始化之CMA初始化)

    写在前面 CMA (contiguous memory allocator)连续内存分配器,被开发用于分配大的.物理连续的内存块,其底层还是依赖内核伙伴系统这样的内存管理机制.通过这套机制,在设备驱动 ...

  5. Linux内存从0到1学习笔记(8.5,CMA内存分配)

    CMA是通过cma_alloc分配的.cma_alloc() --> alloc_contig_range(..., MIGRATE_CMA,...),向刚才释放给buddy system的MI ...

  6. Linux与C++11多线程编程(学习笔记)

    多线程编程与资源同步 在Windows下,主线程退出后,子线程也会被关闭; 在Linux下,主线程退出后,系统不会关闭子线程,这样就产生了僵尸进程 3.2.1创建线程 Linux 线程的创建 #inc ...

  7. 【C#8.0 and .NET Core 3.0 高级编程学习笔记】

    @C#8.0 and .NET Core 3.0 高级编程学习笔记 前言 为了能精细地完成对C#语言的学习,我决定选择一本书,精读它,理解它,记录它.我想选择什么书并不是最重要的,最重要的是持之以恒的 ...

  8. linux 串口信息记到日志,[linux学习笔记]之一:ubuntu ch340调试备忘

    [linux学习笔记]之一:ubuntu ch340调试备忘 已有 2183 次阅读2016-11-8 21:52 |个人分类:linux 最近迷上了Linux,入了一块板.电脑使用win7+ubun ...

  9. 2017-2-15从0开始前端学习笔记(HTML)-图片-表格-表单

    2017-2-15从0开始前端学习笔记-图片-表格-表单 标签 图片 图片<img src="#" alt="文本说明 不能加载图片时显示" title= ...

最新文章

  1. mybatis-plus对datetime返回去掉.0_华为AI认证-TensorFlow2.0编程基础
  2. 提示框样式说明android:windowFrame
  3. 开发日记-20190330
  4. OpenCV图像形态 image morphology的实例(附完整代码)
  5. RecyclerView滑动到底部自动加载
  6. 出版物发行单位是指哪些_上海办理出版物经营许可证都需要哪些手续和资料?...
  7. Matlab R2020a安装教程(附赠免费的安装包)
  8. Tapestry5 grid
  9. android 在线获取音乐歌词lrc文件
  10. c语言 100匹马 编程,编程,百马百担有关问题,有100匹马,驮100担货,大马驮三担,中马驮2担,两匹小马驮一担,求大、中、小各多少匹...
  11. Javascript 报错 Uncaught TypeError: x is not a function 常见错误总结
  12. 编程实现Z=5X+3Y+10,设已知变量和结果均放在数据段
  13. 使用LaTeX写数学公式
  14. Python - 寻找数组的子集
  15. 离线数仓搭建_14_DWT数据构建
  16. 这是我的第一个博客有关javascrit的
  17. txt文件转csv文件乱码问题
  18. JWT(2):JWT入门使用
  19. python 便利店收银系统_前端开发之便利店收银系统代码
  20. 半双工 Wi-Fi 无线局域网讲解

热门文章

  1. 【BIOS/UEFI】PCD配置和使用
  2. 【哲学】康德的空间和时间理论—罗素 读书笔记
  3. matlab蒙特卡洛方法求积分,matlab-蒙特卡洛法估计积分值
  4. Java 银行卡和身份证号根据校验位验证是否合法
  5. MATLAB 路径设置
  6. MySQL --- 数据库的分离和附加
  7. 吊打A8X 英伟达Tegra X1性能测试出炉
  8. 物流信息不更新?难道丢了?Python快递查询系统已上线,爆赞!
  9. React高阶组件深入理解
  10. React高阶组件(HOC)的写法归纳