免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2984 | 回复: 0
打印 上一主题 下一主题

[新手入门] (转)svmon介绍(一) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-31 04:19 |只看该作者 |倒序浏览

svmon介绍(一)

Document #: 2311083I17000
Body:
[标题]svmon介绍
内容提要:介绍svmon使用及其理论
说明:AIX 5L
参考资料:
svmon命令是虚存的的监视命令,svmon可用于确定某个程序、用户、内存段使用实存或虚存的情况。它事实上调用的是svmon_back命令,在使用svmon命令之前,必须确定svmon_back命令可用,该命令位置为 /usr/lib/perf/svmon_back 。
svmon运行于前台,就象一个普通的用户进程一样,因为它在运行过程中可被中断,所以,它无法完全真正地成为内存使用情况的快照。所以,在非常繁忙的系统中,svmon收集的数据和真实的数据有所差距,在svmon进程搜集的过程中,VMM(虚存管理器)可能已经发生改动了。
因为svmon使用的全是VMM中的数据,而VMM对内存的视图是基于内存段的,所以,理解svmon的输出,必须先理解段的概念。
段(segment)是一组页的合集,每个段为256M,而每页为4KB字节的虚存,每帧为4KB字节的实存,每个段可同时被多个进程使用,每个段属于以下五种类型其中的一种:
persistent:存放JFS文件或目录
working:进程数据区域和共享内存段
client:用于实现虚拟文件系统如NFS,CD-ROM文件系统和JFS2
mapping:用于实现文件和内存之间的映射关系
real memory mapping:用于对I/O空间的访问
注意,在段的描述中,如果paging space使用的节中如果有一横(-),表明该段未使用交换区,work段可能使用交换区,但persistent段和client段不会使用交换区。
下面举例说明使用命令可做的一些工作:
1、# 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
2、# 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空间
3、# 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的段使用最多
4、svmon -pP 22674
看PID为22674的进程所使用的为那些文件
Pid Command nuse Pin Pgsp Virtual 64-bit Mthrd
22674 java 29333 1611 2756 32404 N Y
Vsid Esid Type Description Inuse Pin Pgsp Virtual
0 0 work kernel seg 2979 1593 1659 4561
a056 - work 43 16  3   46
1e03 2 work process private 77 2   17  93
1080 - pers /dev/hd2:69742 1 0   -   -
f8bd f work shared library data 84 0   11  99
60ee 8 work shmat/mmap 0 0   0   0
70ec - pers /dev/hd2:69836 1 0   -   -
再利用ncheck命令,用户可自己建立脚本将device:inode信息抽取出来,如从上述的信息中,我们可通过ncheck得到输出:
/usr/java130/jre/lib/rt.jar
/usr/java130/jre/lib/fonts/LucidaSansRegular.ttf
/usr/java130/jre/lib/ext/indicim.jar
/usr/java130/jre/lib/ext/ibmjcaprovider.jar
/usr/java130/jre/lib/fonts/LucidaSansDemiBold.ttf
/usr/java130/jre/bin/java
脚本示例如下:
# expand -4 files.sh|nl
1 grep -p Vsid $1|
2 awk 'NR>1&&$0!~/^$/&&$4~/\/dev/{
3 l=substr($4,1,index($4,":")-1)
4 i=substr($4,index($4,":")+1)
5 if (l~/^\//)
6 print l,i
7 else {
8 print substr(l,index(l,",")+1),i
9 }
10 }'|
11 while read lv inode;do
12 fs=$(lsfs -c $lv 2>/dev/null|awk -F: 'NR>1{print $1}')
13 ncheck -i $inode $lv|awk '!/:$/{print lv $2}' lv=$fs
14 done



本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/7282/showart_474004.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP