- 浏览: 4403578 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
svmon概述
svmon 命令用于显示当前内存状态的信息,可通过
#
lslpp bos.perf.tools
查看是否有安装。因为 svmon 命令在启用中断的用户级别运行,所以显示的信息不组成真正的内存快照。
在非常繁忙的系统中,svmon收集的数据和真实的数据有所差距,在svmon进程搜集的过程中,VMM(虚存管理器)可能已经发生改动了。
因为svmon使用的全是VMM中的数据,而VMM对内存的视图是基于内存段的,所以,理解svmon的输出,必须先理解段的概念。
段
段(segment)是一组页的合集,
用来报告内存消耗的基本对象。因此 svmon 所报告的统计信息是以页面表示的。
每个段为256M,而每页为4KB字节的虚存,每帧为4KB字节的实存,每个段可同时被多个进程使用,每个段属于以下五种类型其中的一种:
persistent:存放JFS文件或目录
working:进程数据区域和共享内存段
client:用于实现虚拟文件系统如NFS,CD-ROM文件系统和JFS2
mapping:用于实现文件和内存之间的映射关系
real memory mapping:用于对I/O空间的访问
svmon参数详解
具体使用范例
1、全局统计信息
#svmon -G
size inuse free pin virtual mmode
memory 3932160 2729499 1202661 818627 1616925 Ded
pg space 8388608 8595
work pers clnt other
pin 675474 0 2801 140352
in use 1616925 0 1112574
PageSize PoolSize inuse pgsp pin virtual
s 4 KB - 1966891 8595 209571 854317
m 64 KB - 47663 0 38066 47663
其中
inuse-------已使用的
free---------空闲的
pin-----“钉”在内存中的内存段(笔者认为这不是固定内存段)
virtual-----虚拟内存段
work------工作内存段
pers-------固定内存段
other------- mapping和real mapping memory
PageSize-----不同内存页大小的统计情况,s为常规页面,大小为4k,m为大页面大小为64k。
pgsp------
分页空间的使用情况
注意,在段的描述中,如果paging space使用的节中如果有一横(-),表明该段未使用交换区,work段可能使用交换区,但persistent段和client段不会使用交换区。
2、打印 1/2 小时中每分钟的全局统计信息,请输入:
#svmon -G -i 60 30
3、要打印出只考虑工作段的用户 root 和 steve 的内存使用统计信息,请输入:
#svmon -U root oracle -w
===============================================================================
User Inuse Pin Pgsp Virtual
oracle 558293 16880 0 558293
PageSize Inuse Pin Pgsp Virtual
s 4 KB 515157 80 0 515157
m 64 KB 2696 1050 0 2696
........................................................................................
SYSTEM segments Inuse Pin Pgsp Virtual
13129 8552 0 13129
PageSize Inuse Pin Pgsp Virtual
s 4 KB 3785 72 0 3785
m 64 KB 584 530 0 584
Vsid Esid Type Description PSize Inuse Pin Pgsp Virtual
20002 0 work kernel segment m 584 530 0 584
以上省略一部分输出。。。。
用户运行的进程所使用的段分成三个类别:
系统:所有进程共享的段
互斥:属于oracle 的进程集所使用的段
共享:几个用户共享的段。
其中
Vsid:表示虚拟段标识符。表示在虚拟内存管理器中的唯一段。
Esid: 表示有效的段标识符。Esid只有在段属于进程的地址空间时才有效。提供时,它表示进程如何使用段。如果 vsid 段被几个进程映射,但具有不同的 esid 值, 那么该字段包含“-”。如果是那样的话,那么通过应用于使用该段的每个进程标识符的 -P 标志,可以获得精确的 esid 值。因为用于管理打开的文件或多线程结构的段不是进程的用户地址空间的一部分,所以也对这些段显示“-”。
3、 可将使用实存最多的三个进程标出
# svmon -uP -t 3|grep -p Pid|grep '^.*[0-9] '
5428 X 4681 1584 2656 9156 N N
16274 bin 4594 1588 2273 8824 N Y
6458 dtgreet 4660 1580 2144 8712 N N
输出的格式顺序为 Pid Command Inuse Pin Pgsp Virtual 64-bit Mthrd
可以计算出X程序所使用的实存为4681×4096=18763776,约为18MB
4、
可将使用交换区最多的三个进程标出
# svmon -gP -t 3|grep -p Pid|grep '^.*[0-9] '
5428 X 4681 1584 2656 9156 N N
16274 bin 4594 1588 2273 8824 N Y
6458 dtgreet 4660 1580 2144 8712 N N
第一个程序X所使用的交换区大小约为 2566×4096 =10510336 字节,大约为10MB空间
5、
每隔三秒显示使用最多的段
# svmon -S -t 3 -i 3
Vsid Esid Type Description Inuse Pin Pgsp Virtual
4f08 - clnt 37505 0 - -
11e1 - clnt 33623 0 - -
8811 - work kernel pinned heap 12637 6547 8091 19397
可见,Vsid为4f08的段使用最多
6、
看PID为22674的进程所使用的为固定内存
#svmon -pP 22674
7、要打印出段 700e 8811 和 bed7 的内存使用统计信息,请输入:
#svmon -S 700e 8811 bed7 1cf8e
8、打印出命令 login ,ksh的内存使用统计信息, 包括地址范围,请输入:
#svmon -C login ksh -r
9、要打印出只考虑非系统工作段的所有进程的内存使用统计信息,并且根据虚拟页面数对该进程排序,请输入:
#svmon -P -n -w -v
10、根据实内存的页数将系统段排序,并且打印出结果列表中最高的 10 个系统段,请输入:
#svmon -S -s -u -t 10
11、只打印大页面段,请输入:
#svmon -S -q
常见问题分析
svmon -S中inuse的求和结果比svmon -G中的inuse小
下面的脚本可以用来统计svmon -S中的inuse的相加结果:
==============================================
#!/usr/bin/ksh
svmon -S | cut -c54-62 | awk '/^[-sLm]/ {if ($1 ~ /L/)
{COUNT1 =($2*4096+COUNT1)}
else if ($1 ~ /m/)
{COUNT2 =($2*16+COUNT2)}
else {COUNT3 =$2+COUNT3}}
END {printf "The result is as following with 4k as unit size\n16M page count=%d\n64k page count=%d\n4k page count=%d\nTatal page count=%d\n", COUNT1,COUNT2,COUNT3,'COUNT1+COUNT2+COUNT3'}'
========================================================
那么,产生这种差别的原因是什么呢?解释如下:
svmon -S用来显示系统中所有内存段(segment)的内存使用信息。AIX上仅存在三种内存段,它们是work,client和persistent。因此,统计svmon -S中inuse的和就是将被使用的上述三种内存段进行求和。但是,这种统计并没有将系统上所有的被使用的内存页面统计进来。系统里存在着一些尚未被VMM管理的内存页面(mapping和real mapping memory),这些页面已经被使用,但是不属于上述三种内存段,因此在svmon -S中体现不出来。而svmon -G则包含了这些未被管理的页面。
这些未被VMM管理的内存主要是被硬件使用,用来对物理内存做一些设置。在AIX 5L中,可以通过在kdb执行vmstat来查看未被管理的内存,输出如下:
VMM Memory Limits:
Total available memory (4K frames) : 00100000 4.0GB
Total unmanaged mem (wlm_hw_pages): 0000D639 214.3MB
4K number of frames : 000F29C7 3.8GB
4K frames pinned : 00009FEE 160.0MB
4K system pinnable frames remaining: 000B817E 2.9GB
4K user pinnable frames remaining : 000BC0BC 3.0GB
Free paging space (in 4K blocks) : 0001FD00 509.0MB
Paging space SIGDANGER level : 00001000 16.0MB
Paging space SIGKILL level : 00000400 4.0MB
其中“unmanaged mem”就代表这类未被VMM管理的内存页面
参考至:http://www.eygle.com/digest/2009/07/ibm_aix_svmon.html
http://www.kuqin.com/aixcmds/aixcmds5/svmon.htm#c013820260joy
http://www-900.ibm.com/cn/support/viewdoc/detail?DocId=2811998D15000
发表评论
-
AIX上的FTP设置(原创)
2013-02-18 13:31 26323FTP服务 FTP是用于Internet上的控制文件双向 ... -
AIX服务详解(原创)
2012-08-20 17:30 9946AIX服务概述 在Windows中,服务标志着一个组 ... -
aix的lvm管理
2012-03-07 22:27 0逻辑卷管理概念 物 ... -
浅解逻辑分区LPAR与DLPAR(原创)
2011-09-16 16:22 6969作为一个DBA,对操作系统及底层硬件的了解也许不是那么至关重要 ... -
利用IBM硬件信息中心定位硬件问题(原创)
2011-09-14 18:11 9857本文主要是通过一次对AIX服务器的硬件故障排查过程来引进一个故 ... -
AIX的vmstat命令详解(原创)
2011-08-24 14:54 20331vmstat概述 vmstat 命令报告关于 ... -
AIX的sar命令详解(原创)
2011-08-24 10:41 9512sar概述 sar 命令将 操 ... -
AIX的topas命令详解(原创)
2011-08-22 15:37 20969topas概述 topas 命令报告选定的本地系统活 ... -
AIX内存概述(原创)
2011-08-19 11:30 2994VMM概述 虚拟内存管 ... -
AIX的/etc/filesystems详解(原创)
2011-08-16 16:59 8943etc/filesystems概述 文件 ... -
AIX中的fsck详解
2011-08-13 16:42 4967在AIX系统中fsck命令的用途 当执行fsck 命令时, ... -
AIX的Dump文件学习笔记(原创)
2011-08-10 18:43 6347DUMP文件概述 为了增强故障分析能力,IBM的 ...
相关推荐
AIX系统性能分析,通过topas,svmon采集数据,然后进行数据分析,CUP,内存,等状况
### IBM AIX 系统命令简介 IBM AIX(Advanced Interactive Executive)是IBM为Power Systems服务器设计的一种类Unix操作系统。本文旨在对AIX系统中的一些关键命令进行介绍,这些命令对于管理和维护AIX系统至关重要...
**入门级AIX系统命令简介** AIX,全称Advanced Interactive eXecutive,是由IBM开发的一款UNIX操作系统,广泛应用于企业级服务器。对于初学者来说,掌握一些基本的AIX命令是十分必要的。本文将概要介绍一些常用且...
在AIX系统管理中,掌握一些常用命令是非常必要的。以下是一些AIX系统管理员经常使用的命令及其功能: 1. **lsvg -o rootvg**:列出rootvg卷组的信息,包括LV(逻辑卷)、PV(物理卷)等详细情况。 2. **lspv hdisk0...
### AIX常用命令详解 #### 一、命令格式与结构 在AIX系统中,命令的基本格式为:`$command option(s) argument(s)`。其中: - **command**:指的是具体的命令名称。 - **option(s)**:命令选项,通常以“-”开头,...
以下是一些常见的AIX命令及其用途,这些命令对于理解和操作AIX系统至关重要。 1. `prtconf`: 这个命令用于显示系统的硬件配置信息,包括CPU、内存、磁盘和其他硬件组件的详细配置。 2. `svmon -G`: 用于监控系统的...
这份"AIX命令参考大全中文版"的6卷全集,为AIX系统的用户和管理员提供了全面的命令指南,帮助他们更好地理解和操作AIX系统。 在AIX系统中,命令行接口是进行日常管理和维护工作的重要工具。每一卷都涵盖了从A到Z的...
- `vmstat`、`svmon`、`iostat`、`netpmon`、`filemon`:这些命令分别用于监控虚拟内存状态、系统性能、输入输出统计、网络性能和文件系统活动。 ### 8. 计划任务与定时作业 - `crontab –l`:列出当前用户的cron...
利用svmon -P pid-m –r命令可以监控具有特定进程ID(pid)的Java进程的内存使用情况。在某些配置中,可以看到内存被分为两部分:一部分用于本机堆(3、4、5段),另一部分用于Java堆(6至E段)。 了解这些内存模型...
AIX,作为IBM的一种Unix操作系统,广泛应用于企业级服务器中,掌握其常用命令对于系统管理员而言至关重要。以下是对AIX常用命令的详细解析,旨在帮助读者深入理解并熟练运用这些命令。 ### AIX常用命令概览 #### 1...
1.2 AIX 5L 内存性能优化之使用 ps、sar、svmon 和 vmstat 监视内存的使用 7 1.3 AIX 5L 内存性能优化之配置和管理交换空间,优化(VMM) 12 1.4 AIX 5.3主机性能评估-Memory性能评估 19 1.5 AIX 5L 磁盘性能优化 23 ...
对于初学者而言,掌握一系列常用的AIX命令是必不可少的技能。以下是从提供的文件信息中提炼出的关键知识点: ### AIX系统信息与硬件查询 - **lsvg**:显示逻辑卷管理器(LVM)的卷组信息。例如,`lsvg –orootvg`...
在AIX操作系统中,了解和熟练使用系统命令对于管理和维护系统至关重要。AIX,全称Advanced Interactive eXecutive,是IBM开发的一款基于UNIX的操作系统,广泛应用于企业级服务器和高性能计算环境中。以下是对AIX系统...
### AIX常用命令详解 #### 1. **查看CPU信息** - **`prtconf`**:该命令用于显示系统的配置信息,包括处理器、内存等硬件设备的详细情况。 - 示例输出: ```plaintext NumberOfProcessors: 4 ``` 这里指系统...
### AIX日常维护命令知识点详解 #### 一、检查AIX系统状态 AIX系统状态检查是日常维护的重要环节之一,主要包括以下方面: 1. **文件系统**: `df –k` 命令用于查看文件系统的空间使用情况,其中 `-k` 表示以 KB ...
在日常维护中,掌握一些核心的AIX命令是至关重要的。以下是对标题和描述中涉及的知识点的详细说明: 1. **监视进程**: - `topas`:实时动态显示系统中各个进程的资源占用状况,包括CPU、内存等。 - `ps -ef` 和 ...
本文主要汇总了AIX、HP-UNIX和Linux三个操作系统中的常用命令,并对这些命令进行了详细的解释和使用示例,旨在帮助系统管理员更好地理解和操作这三个平台。 首先,我们关注AIX系统。AIX(Advanced Interactive ...
在AIX系统中,`ps v`和`svmon`都可以用来查看进程的内存使用情况,但它们显示的单位和信息有所不同。`ps v`显示的是进程的基本信息,而`svmon`可以提供更详细的内存使用情况。 例如,对于PID为23288的进程,我们...