内存分析与定位

本文介绍Linux系统的内存管理机制,包括物理内存与交换区的工作原理、OOM机制触发流程及内存定位分析方法。同时提供了多种内存使用情况监测手段及其度量标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

内存分析

Mem:**used  使用的物理内存总量

Mem:**free   空闲内存总量

Mem:**buffers  用作内核缓存的内存量

Mem:**cached  缓冲的交换区总量

Swap:**total  交换区总量

Swap:**used  使用的交换区总量

Swap:**free 空闲交换区总量

 

系统内存定位分析

OOM机制:Out Of Memory Killer,是Linux内核的一种内存管理机制,在系统可用内存较少的情况下,内核为保证系统还能够继续运行下去,会选择杀掉一些进程释放掉一些内存。

触发流程:进程A想要分配物理内存》触发缺页异常》内核去分配物理内存(已经把可以清到磁盘上的缓冲都清了一次)》物理内存不够了》触发OOM。

OOM功能:当系统物理内存不足时,oom_killer遍历当前所有进程,根据进程的内存使用情况进行打分,然后从中选择一个分数最高的进程,杀之取内存。

swap:类似Windows虚拟内存,当内存不够时,把一部分硬盘空间虚拟成内存使用,从而解决内存容量不足的情况。但它速度比物理内存慢。

swap大小设置:根据你系统内存的大小,以及所使用的程序,自行决定交换分区的大小,甚至可以完全不用交换分区。

buffercache

cache:将CPU最为频繁访问的数据保存在特定区域,并具有优先访问权,这样提高CPU对数据的获取效率来提高程序的运行效率

buffer:为了协调IO和CPU之间的速度不一致而存在,减少CPU中断次数,提高程序效率

两者都属于内存的一部分。

模块

类型

度量方法

衡量标准

内存

使用情况

1.free命令查看使用情况

2.vmstat命令查看使用情况

3.Sar -r命令查看使用情况

4.ps命令查看使用情况

注意>=50%

告警>=70%

严重>=80%

内存

满载

1.vmstat的si/so比例辅助swapd和free利用

2.sar -W查看次缺页数

3.查看内核日志有无OOM机制kill进程

4.dmesg|grep killed

1.so数值大,且swapd已经占比很高,内存肯定已经饱和

2.Sar 命令次缺页多意味已经在不停地与swap打交道,证明内存已经饱和

3.当内存不够用才会触发内核的OOM机制

内存

错误

1.查看内核有无physical failures

2.通过工具如valgrind等进行检查

有计数

vmstat命令结果解析,参考:http://www.ha97.com/4512.html

Vmstat 2 1   第一个参数是采样的时间间隔数,单位是秒,第二个参数是采样的次数

r:表示运行队列(多少个进程分配到CPU)

b:阻塞的进程

swapd:虚拟内存已使用的大小,如果大于0表示物理内存不足

free:空闲物理内存的大小

buff:缓冲内存

 

Swap:内存够用的时候,这2个值都是0,如果这2个值长期大于0时,系统性能会受到影响,磁盘IO和CPU资源都会被消耗

si:每秒从交换区写到内存的大小,由磁盘调入内存

so:每秒写入交换区的内存大小,由内存调入磁盘

 

IO:随机磁盘读写的时候,这2个值越大(如超出1024k),能看到CPU在IO等待的值也会越大

bi: 每秒读取的块数

bo: 每秒写入的块数

 

System:下面2个值越大,会看到由内核消耗的CPU时间会越大

in: 每秒中断数,包括时钟中断

cs: 每秒上下文切换数

 

CPU:

us的值比较高时,说明用户进程消耗的CPU时间多,但是如果长期超50%的使用,那么我们就该考虑优化程序算法或者进行加速;

sy的值高时,说明系统内核消耗的CPU资源多,这并不是良性表现,我们应该检查原因;

wa的值高时,说明IO等待比较严重,这可能由于磁盘大量作随机访问造成,也有可能磁盘出现瓶颈(块操作)

us: 用户进程执行时间百分比(user time)

sy: 内核系统进程执行时间百分比(system time)

wa: IO等待时间百分比

 

Memory(内存):

inact: 非活跃内存大小(当使用-a选项时显示)

active: 活跃的内存大小(当使用-a选项时显示)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值