热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AIX系统分析工具详解

目录性能检查总览:CPU性能分析步骤:内存分析步骤:IO分析步骤:性能检查总览:AIX性能检查模块包

目录

性能检查总览:

CPU性能分析步骤:

内存分析步骤:

IO分析步骤:




性能检查总览:

AIX性能检查模块包括CPU、内存、IO以及网络,其常规步骤可展示为下图:

针对目前的实际情况,主要介绍CPU、内存和IO的内存分析常规步骤。


CPU性能分析步骤:

1、判断CPU(usr%+sys%)的比率是否大于90%,如超过转2。

命令:sar,vmstat,topas, nmon等

例子:topas,其中user%对应于用户态(usr%)占用的CPU使用比例,Kern%对应于系统态(sys%)占用的CPU使用比例,如下图:

注:如果系统CPU有IO wait存在,说明可能IO或内存方面存在瓶颈,请按内存和IO分析步骤来检查。其中主要导致IO Wait的主要原因如下:

        a) 内存不够而引起频繁的的数据交换,导致数据存取存在交换空间的 I/O瓶颈。

        b) 硬盘数据分布不合理

2、检查那个进程占用CPU资源较多

命令:topas, nmon,ps -aux等

示例(topas):

3、判断是否有非业务进程或异常进程,如有则检查导致异常进程的原因,判断是否合理

4、如主要为业务进程所用,收集CPU使用率详细信息。

      工具:tprof -k -s -e -x "sleep 收集的时间长度"

注释:

收集的时间长度一般不要太长,否则数据量会很大。

这条命令将创建一个sleep.prof文件,主要关注图中标红项。

5、判断Sys%的比例,如和往常相比占有率偏高,如是可能是应用问题,建议联系相关厂商或开发人员分析具体原因

6、如Sys%相比往常偏低,可能是系统业务更加繁忙,有潜在的CPU瓶颈问题,建议增加CPU或找相应厂商工程师分析具体原因。


内存分析步骤:

1、判断系统是否有计算页面调入现象?换页空间是否持续增高?

命令:vmstat,topas, nmon

2、如有,查看文件型内存和计算型内存的占用比例,根据系统的类型判断设置是否合理,如文件内存占用不合理,建议通过系统参数调整

       a)对于数据库系统(Oracle,db2等),文件缓存比例不要太大,基点建议为5%左右

       b)对于文件操作型应用(如SAS),文件缓存的比例要相对较大。

       c)对于其它类型,建议文件缓存的比例不要超过20%

命令:topas, nmon,vmo等

3、查看占用内存最多的进程

命令:nmon,ps aux|head –$(待列出的进程数目) 等.

示例(nmon):

4、判断是否有占用内存较多的非业务进程或异常进程,如有则请求相关人员或厂商查询导致异常或内存泄露的原因

命令:svmon Pns

5、如均为业务进程,协助应用工程师调查业务目前内存使用是否正常

6、附:详查内存使用情况的几个命令:

     用户物理内存使用情况:      svmon U

     所有进程物理内存使用情况:  svmon –P

     特定进程物理内存使用情况:  svmon –P pid

     指定命令的物理内存使用情况:svmon –C command1 commandn

实例:检查进程是否有内存泄露: 


  • 输入命令:svmon P 进程ID,然后记录“Work process private”项对应的值
  • 输入命令:svmon P 进程ID,然后记录“Work process private”项对应的值
  •  等待一段时间,重复运行刚才的命令:svmon P 进程ID,对照“Work process private”项对应的值有没比以前增长很多,如有可能会有泄露问题


IO分析步骤:

1、判断系统是否有IO wait,如有则说明系统可能有IO性能问题

命令:topas, nmon

示例:(topas)

2、查看IO概要信息,

     a)对内置盘,判断系统磁盘的繁忙率是否超过80%、读写流量和每个磁盘IO每秒请求数;

     b)对盘阵,主要检查读写流量和IO每秒请求数

命令:topas, nmon, iostat

示例:

 

 3、查看IO使用最高的几个进程,判断IO使用是否合理,排除备份等高IO使用情况

       命令:nmon,filemon

       示例:(nmon)

 4、查找最活跃的文件、文件系统、逻辑卷和物理卷,判断数据使用和分布是否合理?

      命令:filemon –o /tmp/filemon.out –O all

      示例:

Most Active Logical Volumes

------------------------------------------------------------------------

  util  #rblk  #wblk   KB/s     volume                   description

------------------------------------------------------------------------

  1.00 10551264  5600 17600.8  /dev/rms09_lv          /RMS/bormspr0/oradata07

  1.00 6226928   7584 10394.4  /dev/rms06_lv          /RMS/bormspr0/oradata04

  1.00 128544 3315168  5741.5  /dev/rms04_lv          /RMS/bormspr0/oracletemp

.......

Most Active Physical Volumes

------------------------------------------------------------------------

  util  #rblk  #wblk   KB/s  volume                   description

------------------------------------------------------------------------

  1.00 3313059   4520 5531.2   /dev/hdisk66          SAN Volume Controller Device

  1.00 7563668  22312 12647.6  /dev/hdisk59          SAN Volume Controller Device

  1.00  53691 1868096 3204.1  /dev/hdisk61           SAN Volume Controller Device

 ……

5、对于缓存型文件系统,检查系统是否有足够的缓存来处理文件页面

      a)检查系统文件内存的使用率和交换情况

      命令:filemon,topas, nmon

      b)判断系统内存是否足够用来和应该高速缓存那些由正在运行进程使用的文件页面?vmstat、svmon

      c)如有必要,调整vmo参数来增加系统文件内存的使用。

6、如果是内置磁盘,检查“热”文件是否有很多碎片?如有碎片,利用工具重组物理分区分配。

    命令:fileplace,reorgvg

    示例:fileplace

    判断方法,顺序性=(总的存储数目Nfrags – 存储的分组数目)/总的存储数目,如果该值较小,则说明碎片太多。

    对本例,顺序性=(9538 - 18)/9538 = 99.8%

 

 


推荐阅读
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文讨论了clone的fork与pthread_create创建线程的不同之处。进程是一个指令执行流及其执行环境,其执行环境是一个系统资源的集合。在调用系统调用fork创建一个进程时,子进程只是完全复制父进程的资源,这样得到的子进程独立于父进程,具有良好的并发性。但是二者之间的通讯需要通过专门的通讯机制,另外通过fork创建子进程系统开销很大。因此,在某些情况下,使用clone或pthread_create创建线程可能更加高效。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • MySQL数据库锁机制及其应用(数据库锁的概念)
    本文介绍了MySQL数据库锁机制及其应用。数据库锁是计算机协调多个进程或线程并发访问某一资源的机制,在数据库中,数据是一种供许多用户共享的资源,如何保证数据并发访问的一致性和有效性是数据库必须解决的问题。MySQL的锁机制相对简单,不同的存储引擎支持不同的锁机制,主要包括表级锁、行级锁和页面锁。本文详细介绍了MySQL表级锁的锁模式和特点,以及行级锁和页面锁的特点和应用场景。同时还讨论了锁冲突对数据库并发访问性能的影响。 ... [详细]
  • Ihaveaworkfolderdirectory.我有一个工作文件夹目录。holderDir.glob(*)>holder[ProjectOne, ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
author-avatar
手机用户2602915953
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有