查看linux/单个JVM实例的虚拟内存大小[转帖]_Tomcat, WebLogic及J2EE讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Tomcat, WebLogic及J2EE讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4620 | 回复: 0   主题: 查看linux/单个JVM实例的虚拟内存大小[转帖]        下一篇 
John
注册用户
等级:大元帅
经验:90444
发帖:136
精华:2
注册:2011-7-21
状态:离线
发送短消息息给John 加好友    发送短消息息给John 发消息
发表于: IP:您无权察看 2011-8-9 10:29:54 | [全部帖] [楼主帖] 楼主

环境:

Red Hat Enterprise Linux AS release 4 (Nahant)
weblogic10.3


在查看关于本地OOM问题的support pattern时,有一点是定期记录虚拟内存大小,从启动应用程序时起直到 JVM 用完本地内存。这样将有助于了解此进程是否确实达到该操作系统的大小限值。
在 Unix 或 Linux 环境下,对于一个给定 PID,可以使用以下命令来查找虚拟内存大小 -ps -p <PID> -o vsz。

在 Linux 环境下,单个 JVM 实例内的每个 java 线程都显示为一个独立的进程。如果我们获得根 java 进程的 PID,那么这就足够了。可以使用 ps 命令的 .forest 选项来找到根 java 进程。例如,ps lU <user> –forest 将提供一个由指定用户启动的所有进程的 ASCII 树图。您可以从该树图中找到根 java。

针对以上内容做了下实验操作:

1、

[bea@mylinux ~]$ ps -p 3136 -o vsz
VSZ
274352
[bea@mylinux ~]$ ps lU bea –forest
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 501 3056 3055 15 0 6216 1392 wait S pts/1 0:00 -bash
0 501 3234 3056 16 0 3700 728 – R+ pts/1 0:00 \_ ps lU bea –forest
4 501 2915 2914 15 0 5884 1424 wait S pts/0 0:00 -bash
0 501 3099 2915 17 0 4196 1108 wait S+ pts/0 0:00 \_ /bin/sh ./startWebLogic.sh
0 501 3136 3099 18 0 274352 239372 – Sl+ pts/0 0:00 \_ /home/bea/bea103/jrockit_160_05/bin/java -jrockit -Xms128m -Xmx128m -Xverify:none -da -Dplatform.home=/h
[bea@mylinux ~]$


联合top命令又做了下测试:
启动了一个java进程。

[bea@mylinux ~]$ ps -ef|grep java
bea 3155 3118 0 20:07 pts/2 00:00:00 /home/bea/bea103/jrockit_160_05/bin/java -jrockit -Xms128m -Xmx128m -Xverify:none -da -Dplatform.home=/home/bea/bea103/wlserver_10.3 -Dwls.home=/home/bea/bea103/wlserver_10.3/server -Dweblogic.home=/home/bea/bea103/wlserver_10.3/server -Dweblogic.management.discover=true -Djava.rmi.server.hostname=192.168.0.54 -Xmanagement -Xmanagement:autodiscovery=true,ssl=false,authenticate=false,port=7091 -Dwlw.iterativeDev= -Dwlw.testConsole= -Dwlw.logErrorsToConsole=Dweblogic.Name=AdminServer -Djava.security.policy=/home/bea/bea103/wlserver_10.3/server/lib/weblogic.policy weblogic.Server
[bea@mylinux ~]$ ps lU bea –forest
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 501 3249 3248 15 0 6044 1396 wait S pts/3 0:00 -bash
0 501 3278 3249 16 0 3228 732 – R+ pts/3 0:00 \_ ps lU bea –forest
4 501 3187 3186 15 0 4352 1396 wait S pts/1 0:00 -bash
0 501 3213 3187 17 0 2092 936 select S+ pts/1 0:00 \_ top
4 501 3008 3007 15 0 5120 1428 wait S pts/2 0:00 -bash
0 501 3117 3008 16 0 4580 968 wait S+ pts/2 0:00 \_ /bin/sh ./startWebLogic.sh
0 501 3118 3117 23 0 5608 1104 wait S+ pts/2 0:00 \_ /bin/sh /home/bea/bea103/user_projects/domains/base_domain/bin/startWebLogic.sh
0 501 3155 3118 23 0 274316 239464 – Sl+ pts/2 0:00 \_ /home/bea/bea103/jrockit_160_05/bin/java -jrockit -Xms128m -Xmx128m -Xverify:none -da -Dplatform.hom


可以看到,现在VSZ的值是274316

[bea@mylinux ~]$ top
Tasks: 63 total, 2 running, 61 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.0% us, 0.4% sy, 0.0% ni, 99.6% id, 0.0% wa, 0.0% hi, 0.0% si
Mem: 515708k total, 392596k used, 123112k free, 28408k buffers
Swap: 1052248k total, 0k used, 1052248k free, 89400k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3281 bea 16 0 2352 940 760 R 0.3 0.2 0:00.85 top
3008 bea 15 0 5120 1428 1196 S 0.0 0.3 0:00.06 bash
3117 bea 16 0 4580 968 856 S 0.0 0.2 0:00.00 startWebLogic.s
3118 bea 23 0 5608 1104 908 S 0.0 0.2 0:00.01 startWebLogic.s
3155 bea 23 0 267m 233m 1560 S 0.0 46.4 0:00.01 java
3187 bea 16 0 4352 1400 1172 S 0.0 0.3 0:00.02 bash
3249 bea 16 0 6044 1396 1172 S 0.0 0.3 0:00.01 bash


可以看到VIRT值是267M等于273408KB,和VSZ的值是274316几乎一样
说明这个VIRT也能来看进程的虚拟内存大小。
VIRT解释:

VIRT — Virtual Image (kb)
The total amount of virtual memory used by the task. It includes all code, data and shared libraries plus pages that have been swapped out.
VIRT = SWAP + RES.
2、
[bea@myliux ~]$ top -Hp 3286 -d 1 -n 1
top – 16:26:51 up 5 min, 3 users, load average: 0.14, 0.17, 0.08
Tasks: 26 total, 0 running, 26 sleeping, 0 stopped, 0 zombie
Cpu(s): 6.2%us, 9.9%sy, 0.1%ni, 70.6%id, 12.2%wa, 0.1%hi, 1.0%si, 0.0%st
Mem: 775044k total, 499560k used, 275484k free, 31376k buffers
Swap: 1048568k total, 0k used, 1048568k free, 236944k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
3286 bea 19 0 640m 182m 19m S 0.0 24.1 0:00.02 java
3287 bea 16 0 640m 182m 19m S 0.0 24.1 0:06.65 java
3288 bea 15 0 640m 182m 19m S 0.0 24.1 0:01.03 java
3289 bea 18 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3290 bea 18 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3291 bea 25 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3292 bea 15 0 640m 182m 19m S 0.0 24.1 0:02.45 java
3293 bea 21 0 640m 182m 19m S 0.0 24.1 0:02.79 java
3294 bea 25 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3295 bea 15 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3323 bea 19 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3340 bea 15 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3351 bea 15 0 640m 182m 19m S 0.0 24.1 0:10.94 java
3352 bea 15 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3353 bea 15 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3355 bea 17 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3356 bea 15 0 640m 182m 19m S 0.0 24.1 0:01.09 java
3357 bea 15 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3358 bea 17 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3360 bea 15 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3362 bea 16 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3363 bea 16 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3415 bea 18 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3418 bea 16 0 640m 182m 19m S 0.0 24.1 0:00.00 java
3419 bea 16 0 640m 182m 19m S 0.0 24.1 0:00.01 java
3420 bea 16 0 640m 182m 19m S 0.0 24.1 0:00.00 java
[bea@myliux ~]$ ps -p 3287 -o vsz
VSZ
[bea@myliux ~]$ ps -p 3286 -o vsz
VSZ
655776
[bea@myliux ~]$ ps -p 3290 -o vsz
VSZ
[bea@myliux ~]$
[bea@myliux ~]$ ps lU 3286 –forest
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
[bea@myliux ~]$ ps lU bea –forest
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
4 500 3391 3390 15 0 4536 1400 wait S pts/2 0:00 -bash
0 500 3436 3391 17 0 4224 840 - R+ pts/2 0:00 \_ ps lU bea –forest
4 500 3220 3219 15 0 4536 1416 wait S pts/0 0:00 -bash
0 500 3249 3220 17 0 4484 1012 wait S+ pts/0 0:00 \_ /bin/sh ./startWebLogic.sh
0 500 3250 3249 18 0 4488 1132 wait S+ pts/0 0:00 \_ /bin/sh /home/bea/bea103/user_projects/domains/base_domain/bin/startWebLogic.sh
0 500 3286 3250 19 0 656748 186536 stext Sl+ pts/0 0:25 \_ /home/bea/bea103/jdk160_05/bin/java -server -Xms384M -Xmx384M -XX:PermSize=128m -XX:MaxPermSize=128m -da -Dpla


说明针对线程的pid查不出虚拟内存




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论