zoukankan      html  css  js  c++  java
  • LinuxMM--Memory Pressure

    Memory pressure
    定义
    在操作系统中,用户分配、文件缓存、网卡包缓冲区等等都会消耗内存。一旦出现内存紧张就会导致memory pressure.
    引发
    当某个任务需要请求内存时就有可能引发memroy pressure。
    通常情况下内存申请时,只要分配合适的空闲内存给申请者即可. 然而,有时候如果我们需要一些特别的内存资源,例如DMA区的内存(或者物理地址连续的大内存,低端内存,以及特定的某个numa结点上的内存),即使还有其他类型的空闲内存这也会引发memory pressure.
    Memory pressure的一个误区就是:系统中有空闲内存就不会造成memory pressure.
    FAQ
    Memory pressure会引发什么问题?
    当出现memory pressure的时候内核不得不做些额外的工作来以满足memory pressure下的内存申请。
    在linux中,这个额外的工作就是进行内存扫描和内存的重新申请,包括写出
    脏数据,丢掉预读到缓存的数据,或者进行内存swap。
    如何知道系统处于memory pressure?
    可以通过cat /proc/vmstat 接口,如果观察到所有的条目都在"scan" 就表示处于memory pressure.
    同时还可以通过 cat /proc/zoneinfo来观察每个zone的使用情况来进行判断。
    如何找到引发memory pressure的源头?
    可以尝试 /sys/kernel/debug/tracing/events/kmem/mm_page_alloc来进行跟踪分析。
    NUMA系统中如何处理memroy pressure?
    如果运行的是NUMA系统,实质上是将系统划分成不同的结点分开进行管理。
    假设有一个包含2个结点的NUMA系统共配置了64GB的内存,每个结点32GB。由于系统分为两个结点,因而整个计算机就按照两个32GB的系统来工作而非一个64GB的系统。
    这样的情况下,其中的某个单独的结点就更容易陷入memory pressure即使整个系统或者另一个结点处于非pressure状态。
    在NUMA系统中,vm_zone_reclaim_mode组件来负责处理某个结点产生的memory pressure.

  • 相关阅读:
    算法第五章作业
    算法第四章作业
    算法第四章上机实践报告
    算法第三章作业——动态规划
    算法第三章上机实践报告
    分治法的思想与体会
    算法第二章上机实践报告
    c++代码规范及《数学之美》读后感
    bugkuctf web部分(前8题)解题报告
    第二次博客作业
  • 原文地址:https://www.cnblogs.com/liuhailong0112/p/5423905.html
Copyright © 2011-2022 走看看