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.

LinuxMM--Memory Pressure的更多相关文章

  1. Android中基于CGroup的memory子系统HAL层分析-lmkd

    Android在内存管理上于Linux有些小的区别,其中一个就是引入了lowmemorykiller.从lowmemorykiller.c位于drivers/staging/android也可知道,属 ...

  2. debug实战:Unmanaged High Memory非托管高内存

    最近又监控到一个高内存的问题,周五下班把系统打开,周末2天没关,周一来看已经涨到5.2G,这次与以往不同,不是.net的内存泄漏,而是非托管引起的. 1. 抓dump,确定高内存的类型 //dump有 ...

  3. Spring Boot Memory Performance

    The Performance Zone is brought to you in partnership with New Relic. Quickly learn how to use Docke ...

  4. Troubleshooting SQL Server RESOURCE_SEMAPHORE Waittype Memory Issues

    前言: 本文是对博客https://www.mssqltips.com/sqlservertip/2827/troubleshooting-sql-server-resourcesemaphore-w ...

  5. [转帖]Docker容器CPU、memory资源限制

    Docker容器CPU.memory资源限制 https://www.cnblogs.com/zhuochong/p/9728383.html 处理事项内容等 这一块内容感觉 不清楚.. 背景 在使用 ...

  6. Docker(二十)-Docker容器CPU、memory资源限制

    背景 在使用 docker 运行容器时,默认的情况下,docker没有对容器进行硬件资源的限制,当一台主机上运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU.内存和磁盘资源.如果不 ...

  7. The "Out of socket memory" error

    The "Out of socket memory" error I recently did some work on some of our frontend machines ...

  8. PatentTips - Modified buddy system memory allocation

    BACKGROUND Memory allocation systems assign blocks of memory on request. A memory allocation system ...

  9. Docker容器CPU、memory资源限制

    背景 在使用 docker 运行容器时,默认的情况下,docker没有对容器进行硬件资源的限制,当一台主机上运行几百个容器,这些容器虽然互相隔离,但是底层却使用着相同的 CPU.内存和磁盘资源.如果不 ...

随机推荐

  1. EM算法(4):EM算法证明

    目录 EM算法(1):K-means 算法 EM算法(2):GMM训练算法 EM算法(3):EM算法运用 EM算法(4):EM算法证明 EM算法(4):EM算法证明 1. 概述 上一篇博客我们已经讲过 ...

  2. oracle的游标

    declare v_0 number; v_1 number; cursor c1 is select productordernumber from his_productorder@pro_crm ...

  3. type

    MollyPages.org"You were wrong case.To live here is to live." Home Pages / Database / Forms ...

  4. kendoTreeView,需要注意的地方

    今天使用了下kendoUI中的TreeView控件,一开始的时候总是不成功, 总是会报 Uncaught TypeError: Cannot read property 'toLowerCase' o ...

  5. Flash Builder常见菊紧问题集锦

    FB的错误多多,不定什么时候就让你蛋碎,路遇操蛋问题集锦如下: 1.有次用Flash Builder 4.7,打开之后马上自动关闭,试了几次都这样,解决办法如下: 到C:\Documents and ...

  6. fiddler抓取Android 真机app数据包

    fiddler功能强大 不仅能抓pc上的请求还能抓取手机上的请求.下面以fiddler4 +android手机为例介绍一下 手机抓包. 官网下载fiddler后下一步下一步安装成功. 首先是fiddl ...

  7. 防御病毒邮件得看U-Mail邮件网关

    其实在邮件通讯中,那些病毒.垃圾邮件.钓鱼软件也相当危险,在海量邮件中,你没法确定什么时间.哪一封会发起进攻,攻击的目标都有谁?但是一旦得逞,造成的损失又特别大. 最近美国同行又发现了一个新骗局:美国 ...

  8. Ajax1

    一.Ajax是什么? 全称"Asynchronous JavaScript and XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJA ...

  9. Android菜鸟成长记13 -- 初识application

    二.Application 简介 Application 类是用来维护应用程序全局状态.你可以提供自己的实现,并在 AndroidManifest.xml文件的 <application> ...

  10. IOS (APP 启动 相应处理)

    APP 每次启动的入口都是通过: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSD ...