DBA在分析AIX上的Oracle问题时常见的AIX命令介绍
摘要:本文详解AIX 7中的proctree和svmon命令。proctree以树状结构显示进程关系,支持显示所有进程或指定PID的进程树。svmon提供详细内存分析功能,支持全局、进程、用户、命令等多种报告类型,可通过-O选项精细控制输出格式。文中列举了常用语法和示例,如查看内存占用前10进程、监控全局内存等,并说明了两命令的权限要求、性能影响及与ps命令的区别。文档依据IBM官方AIX 7性能
AIX 7 中 proctree 和 svmon 命令详解
1. proctree 命令
功能概述
proctree 命令用于以树状结构显示系统中的进程,清晰地展示进程之间的父子关系。
基本语法
proctree [选项] [进程ID]
常见用法
-
显示所有进程的树状结构:
proctree -
显示特定进程及其子进程的树状结构:
proctree <PID> -
结合其他命令使用:
proctree是proc工具集的一部分。在procmon图形工具中,可以通过右键菜单对选中的进程执行proctree等命令。
文档依据
在《IBM AIX 7 commands_pdf.pdf》中,proctree 被列为 proctools 命令之一,用于进程管理。
2. svmon 命令
功能概述
svmon 命令用于深入分析内存使用情况。它比 vmstat 和 ps 命令提供更详细的信息,可以捕获内存当前状态的快照(在用户级运行,并非完全实时)。它可以显示整个系统、特定进程、用户、命令或工作负载管理器(WLM)类/层的内存使用统计信息。
基本语法
svmon [全局选项] [报告选项] [对象选项] [其他选项]
常用报告类型与选项
svmon 通过不同的主选项来生成不同类型的报告:
| 选项 | 报告内容 | 描述 |
|---|---|---|
-G |
全局报告 | 显示整个系统的真实内存和分页空间使用统计。 |
-P |
进程报告 | 显示进程的内存使用统计。 |
-U |
用户报告 | 显示按用户汇总的内存使用统计。 |
-C |
命令报告 | 显示按命令名汇总的内存使用统计。 |
-W |
WLM类报告 | 显示工作负载管理器(WLM)类的内存使用统计。 |
-S |
段报告 | 显示内存段的详细信息。 |
-D <段ID> |
段详情报告 | 显示指定内存段的详细使用统计。 |
常用全局和输出控制选项
| 选项 | 描述 |
|---|---|
-i <间隔> [次数] |
以指定的时间间隔(秒)重复收集并显示统计信息,可指定重复次数。 |
-t <数量> |
仅显示前 N 个条目(例如,内存使用最多的前10个进程)。 |
-O <选项列表> |
指定详细的输出格式和内容控制,功能非常强大(见下文详述)。 |
-@ [WPAR列表\ALL] |
显示工作负载分区(WPAR)相关的信息。 |
-O 选项详解(部分关键选项)
-O 选项用于精细控制报告的输出格式和内容,可以组合使用。
| 选项 | 适用报告 | 描述 |
|---|---|---|
unit=[KB|MB|page|auto] |
所有 | 设置输出单位(KB、MB、页或自动选择)。 |
summary=[basic|longreal|shortreal|ame] |
主要是-G |
控制全局报告的摘要格式。ame用于显示活动内存扩展信息。 |
segment=[on|off|category] |
-P, -U, -C, -W, -S |
控制是否显示段详情。category将段按系统、独占、共享分类。 |
pgsz=[on|off] |
所有 | 控制是否按页面大小(如4KB、64KB)细分统计。 |
filename=[on|off] |
-P, -S |
显示与段关联的文件名(可能耗时)。 |
commandline=[on|off] |
所有 | 在报告头中显示生成该报告的命令行。 |
timestamp=[on|off] |
所有 | 在报告头中显示时间戳。 |
sortentity=[inuse|pin|...] |
-P, -U, -C, -W |
指定对实体(进程、用户等)进行排序的依据字段。 |
filterprop=[notempty|text|data] |
-S |
过滤段属性,如只显示非空段、文本段或数据段。 |
filtercat=[exclusive|kernel|shared|...] |
-S |
按段类别过滤输出。 |
process=on |
-U, -C |
在用户或命令报告中,添加属于该实体的进程的内存统计。 |
pidlist=on |
-C, -S |
在命令或段报告中,显示使用该段或命令的进程ID列表。 |
使用示例
-
查看系统整体内存概况(默认单位:页):
svmon -G -
查看内存使用最多的前10个进程(单位:MB):
svmon -P -t 10 -O unit=MB,sortentity=inuse -
以5秒间隔,监控全局内存3次(单位:MB,紧凑格式):
svmon -G -i 5 3 -O unit=MB,summary=shortreal -
查看指定进程(如PID为221326)的详细内存信息,包括段分类和文件名:
svmon -P 221326 -O segment=category,filename=on -
查看用户“root”的内存使用,并显示其下的进程详情:
svmon -U root -O process=on -
查看命令“java”的内存使用,并显示其段详情和非空过滤:
svmon -C java -O segment=on,filterprop=notempty -
查看所有WLM类的内存使用,并显示子类:
svmon -W -O subclass=on
重要说明
- 权限:
svmon命令通常需要 root 权限才能获取完整的系统视图。非 root 用户看到的信息可能受限。 - 性能影响:虽然
svmon比一些底层工具侵入性小,但在高负载系统上频繁运行或使用非常详细的选项(如filename=on)仍可能对性能产生轻微影响。 - 与
ps命令的关系:ps命令不显示共享内存段或内存映射段的使用情况,而svmon可以,因此svmon是分析应用程序内存占用的更佳工具。 - 配置:用户可以在家目录创建
.svmonrc文件来预设默认的-O选项。
文档依据
《IBM AIX 7 Performance Tools Guide and Reference.pdf》中关于 svmon 的完整章节
《IBM AIX 7 Performance management.pdf》中关于内存测量的部分。
更多推荐

所有评论(0)