nmon内存分析
可参考:
MemTotal:显示当前服务器物理内存大小,本服务器有8063180 KB≈7874 MB左右。
MemFree:显示当前服务器的空闲内存大小,本服务器有5052336 KB≈4934 MB左右。
Buffers:显示当前服务器Buffer(在内存中要写到磁盘上的)缓存的大小,本服务器有459108 KB≈448 MB左右,注意,这里的数值仅是采集初期的静态值,具体Buffer的变化还需要看Sheet MEM。
Cached:显示当前服务器Cache缓存的大小(从磁盘读取到内存的),本服务器有1032572 KB≈1008 MB左右。,这里的数值仅是采集初期的静态值,具体Buffer的变化还需要看Sheet MEM。
SwapCached:显示当前服务器Swap空间已缓存的大小,本服务器尚未使用到Swap空间。
SwapTotal:显示当前服务器Swap空间大小,本服务器有8385532 KB≈8189 MB左右。
SwapFree:显示当前服务器Swap空闲空间大小,本服务器Swap空间都空闲。
active表示这些内存数据正在使用种,或者刚被使用过。inactive表示这些内存中的数据是有效的,但是最近没有被使用。free, 空闲内存,这些空间可以随时被程序使用。
当free的内存低于某个值,系统则会使用inactive的资源。
关于active、inactive和free内存的转化关系如下:
首先如果inactive的数据最近被调用了,系统会把它们的状态改变成active,并接在原有active内存逻辑地址的后面, 如果inactive的内存数据最近没有被使用过,但是曾经被更改过而还没有在硬盘的相应虚拟内存中做修改,系统会对相应硬盘的虚拟内存做修改,并把这部分物理内存释放为free供程序使用。如果inactive内存中得数据被在映射到硬盘后再没有被更改过,则直接释放成free。最后如果active的内存一段时间没有被使用,会被暂时改变状态为inactive。
如果系统里有少量的free memeory和大量的inactive的memeory,说明内存是够用的,系统运行在最佳状态,只要需要,系统就会使用它们,不用担心。而反之如果系统的free memory和inactive memory都很少,而active memory很多,说明内存不够了。
分析阶段 我们通常需要 CPU(%)、MEM(%)、DISKBUSY(%)、NET(MB)几个相关数值
1. 关于有效行
由于nmon启动时间未必是应用平稳的时间,同时nmon监控时间段也许比应用施压的要长;所以nmon的结果里常常存在一些明显不合理的数据--比如前几次结果的CPU等占用明显低于中段的平均数据,或者后面几次采样结果很小;对于这样的数据我们在分析的时候要予以过滤;
2. CPU 占用
CPU_ALL 表,的CPU%列取平均值即可---注意下图中红框中就是无效数据;
2. DISKBUSY
DISKBUSY表,对于单磁盘服务器直接对SDA列取平均即可;多服务器的话看情况而定--若果只有一个磁盘有压力那么就选择那个磁盘即可,要是两个磁盘均有则要合起来取个平均;
3. MEM%
在MEM表里面使用如下公式计算出每行的内存使用率并进行取平均:
(Memtotal - Memfree - cached - buffers)/Memtotal * 100即( =(B2-F2-K2-N2)/B2*100)
通过分析内存使用率的趋势,可定位是否内存泄露情况。
有人看到内存使用率是99%,就认为内存用满了,并没有区分内存分页是什么类型,这样武断的说内存用满了是不科学的。在AIX上主要关注的是计算内存占整个物理内存的百分比,linux上主要关注的是active内存占整个物理内存的百分比。
4. NET(MB) 网络占用是唯一需要转换为MB的而不是%
找到eth0-total eth1-total中不为0的那列,取平均并除以1024。
注意此处的write 相当于 nmon时时监控(直接执行并按n键)中的TRANS(OUT),read相当于RECVS(IN)
要留心数据的变化规律和有效性,灵活的过滤掉无效的数据,一般用CPU来过滤无效行,并在其他三项中统一用有效行数来计算;
Shell脚本查看linux系统性能瓶颈文中有已写的shell脚本,从脚本中可看出从linux命令中如何获取服务器各项资源的值。可以与nmon结合一块分析。
作者:极客与宽客
链接:https://www.jianshu.com/p/105f2c9abff4
来源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
nmon内存分析的更多相关文章
- iOS app内存分析套路
iOS app内存分析套路 Xcode下查看app内存使用情况有2中方法: Navigator导航栏中的Debug navigator中的Memory Instruments 一.Debug navi ...
- 【Android端 APP 内存分析】使用工具进行APP的内存分析
Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...
- Chrome开发者工具之JavaScript内存分析
阅读目录 对象大小(Object sizes) 对象的占用总内存树 支配对象(Dominators) V8介绍 Chrome 任务管理器 通过DevTools Timeline来定位内存问题 内存回收 ...
- Eclipse CDT Linux下内存分析 补记
常用工具汇总 http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/ 常用的内存分析工具 http://en.wikipedia.org/wi ...
- c中的进制与内存分析
一. 进制 1. 什么是进制 l 是一种计数的方式,数值的表示形式 数一下方块的个数 汉字:十一 十进制:11 二进制:1011 八进制:13 l 多种进制:十进制.二进制.八进制.十六进制. ...
- [转载]JavaScript内存分析
https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools/blob/master/md/Performance-Profiling/javasc ...
- iOS开发——高级篇——内存分析,Instruments
一.内存分析 1.静态内存分析(Analyze)不运行程序,直接对代码进行内存分析,查看代码是否有内存泄露优点:分析速度快,并且可以对所有的代码进行内存分析缺点:分析结果不一定准确(没有运行程序,根据 ...
- 记一次Android内存分析过程
前言 上周五的时候,祝峰找到我,反映了Android收银台买单结果页内存飙升的问题.我在自己的机器上也试着重现了一下,发现从支付台-微信支付成功并返回后,进入买单结果页的内存会突然增大,导致GC,如图 ...
- [原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler
[原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler 1 官方网站:http://memprofiler.com/2 下载地址:http://memprofiler. ...
随机推荐
- 短篇文档兼职看过来 python 课后作业 assignment project
文档兼职 开题报告 读后感 课后作业 等 代写 编程,Java ,Python,R,等语言的,国内外课程作业指导,写作. 有经验,有作品,成交快,放心! 可联系 QQ 550987425
- spark复习笔记(2)
之前工作的时候经常用,隔了段时间,现在学校要用学的东西也忘了,翻翻书谢谢博客吧. 1.什么是spark? Spark是一种快速.通用.可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校AMPL ...
- 微信小程序wxss制作扭蛋机
小程序制作扭蛋机 2019-09-24 13:26:53 公司要制作活动小程序,其中有一个扭蛋机的效果实现抽奖的功能.在网上找了好久竟没有找到(不知道是不是我找代码的方式有问题).最后还是自己做一个吧 ...
- slot-scope 插槽 的使用 ——'<template slot-scope="page">'
slot-scope="page"slot-scope 是一个插槽,拿外面的数据,可以获取当前一行的数据page.row.pageId 拿到当前行数据的pageId注意:slot- ...
- 异步json发送put或者delete
第一种 put请求或者delete请求 直接写发送的情况 //批量删除 function batchDel() { var ids = []; $("#list-table").f ...
- 330-基于FMC接口的Kintex-7 XC7K325T PCIeX8 3U PXIe接口卡 光纤PCIe卡
一.板卡概述 本板卡基于Xilinx公司的FPGAXC7K325T-2FFG900 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8.64bit D ...
- [洛谷P1514] NOIP2010 引水入城
问题描述 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政区划十分特殊,刚好构成一个N 行×M 列的矩形,如上图所示,其中每个格子都代表一座城市,每座城市都有一个海拔高度. ...
- web前后端分离漏洞分析防御
web前后端分离漏洞分析防御 漏洞分析,主要漏洞有 一.跨站脚本攻击XSS 程序 + 数据 = 结果:攻击后,数据夹杂一部分程序(执行代码),导致结果改变: 1.XSS攻击注入点 (a):HTML节点 ...
- php怎么获取js的变量值
使用php做网站的时候,经常需要我们与前端的页面进行交互,有时候我们还需要通过php来获得js变量中的值,这种情况我们可以通过在其中嵌入js代码的方式来获得这个变量. 首先我们创建一个test的php ...
- Angular:实现组件间双向数据绑定
学过Angular的同学都知道,输入框通过[(ngModel)]实现双向数据绑定,那么父子组件间能不能实现双向数据绑定呢?答案是肯定的. Angular中,我们常常需要通过方括号[]和圆括号()实现组 ...