可参考:

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内存分析的更多相关文章

  1. iOS app内存分析套路

    iOS app内存分析套路 Xcode下查看app内存使用情况有2中方法: Navigator导航栏中的Debug navigator中的Memory Instruments 一.Debug navi ...

  2. 【Android端 APP 内存分析】使用工具进行APP的内存分析

    Android端可以通过adb 命令直接获取内存信息,当然Android studio也提供了对内存的监控分析工具,并且后续可以结合MAT做分析 今天介绍的是通过Android studio和MAT工 ...

  3. Chrome开发者工具之JavaScript内存分析

    阅读目录 对象大小(Object sizes) 对象的占用总内存树 支配对象(Dominators) V8介绍 Chrome 任务管理器 通过DevTools Timeline来定位内存问题 内存回收 ...

  4. Eclipse CDT Linux下内存分析 补记

    常用工具汇总 http://www.ibm.com/developerworks/cn/linux/l-cn-memleak/ 常用的内存分析工具 http://en.wikipedia.org/wi ...

  5. c中的进制与内存分析

    一. 进制 1. 什么是进制 l 是一种计数的方式,数值的表示形式 数一下方块的个数 汉字:十一   十进制:11  二进制:1011  八进制:13 l 多种进制:十进制.二进制.八进制.十六进制. ...

  6. [转载]JavaScript内存分析

    https://github.com/CN-Chrome-DevTools/CN-Chrome-DevTools/blob/master/md/Performance-Profiling/javasc ...

  7. iOS开发——高级篇——内存分析,Instruments

    一.内存分析 1.静态内存分析(Analyze)不运行程序,直接对代码进行内存分析,查看代码是否有内存泄露优点:分析速度快,并且可以对所有的代码进行内存分析缺点:分析结果不一定准确(没有运行程序,根据 ...

  8. 记一次Android内存分析过程

    前言 上周五的时候,祝峰找到我,反映了Android收银台买单结果页内存飙升的问题.我在自己的机器上也试着重现了一下,发现从支付台-微信支付成功并返回后,进入买单结果页的内存会突然增大,导致GC,如图 ...

  9. [原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler

    [原创]推荐一款强大的.NET程序内存分析工具.NET Memory Profiler 1 官方网站:http://memprofiler.com/2 下载地址:http://memprofiler. ...

随机推荐

  1. git把本地代码上传(更新)到github上

    # 初始化目录为本地仓库 git init # 添加所有文件到暂存去 git add . # 提交所有文件 git commit -m "init" # 添加远程仓库地址 git ...

  2. MIT 6.824学习笔记4 Lab1

    现在我们准备做第一个作业Lab1啦 wjk大神也在做6.824,可以参考大神的笔记https://github.com/zzzyyyxxxmmm/MIT6824_Distribute_System P ...

  3. 又一年NOIP后的一波总结

    (昨天正式考完了吧...先写一下现在的感受,出成绩以及后续继续更...) 按照国际惯例,还是先讲一下故事吧. Day(~,0] 大概是跟随者时间的推进,气氛越来越紧张吧. 平时好像大家和往常一样,日常 ...

  4. 剑指offer学习--实现单例模式

    只能生成一个实例的类是为了实现单例模式的类型. 加同步锁前后两次判断实例是否已存在 我们只是在实例还没有创建之前加锁操作,以保证只有一个线程创建出实例.而当实例已经创建之后,我们已经不需要再做加锁操作 ...

  5. pgtksh -- PostgreSQL Tcl/Tk shell 客户端

    SYNOPSIS pgtksh [filename [argument...]] DESCRIPTION 描述 pgtksh 是一个带有 PostgreSQL 数据库访问函数扩展的 Tcl/Tk sh ...

  6. nodejs http服务器简单搭建

    var http = require('http') // 1. 创建 Server var server = http.createServer() // 2. 监听 request 请求事件,设置 ...

  7. 网络拓扑_VLAN与Trunk配置

    实验目的: 1.实现VLAN10的两台主机互通; VLAN20的两台主机互通; 2.VLAN10与VLAN20主机不能互通. 拓扑图: 步骤: 1.依图配置PC1,PC2,PC3,PC4的IP,掩码, ...

  8. Git命令——提交、查看、后退、前进

    Git常用命令 1. 命令git init把这个目录变成Git可以管理的仓库: 2. 命令git commit把文件提交到仓库 这里需要注意的是,Git只能跟踪文本文件的改动,如txt文件,网页,所有 ...

  9. springboot集成hibernate

    package com.jxd.Boot.hibernate.dao.impl; import java.util.List; import javax.persistence.EntityManag ...

  10. Flask之路由相关

    1.装饰器中的参数 @app.route("/info", methods=["GET", "POST"]) def student_inf ...