我有一组Java背景的工人,我开始我的web应用程序的一部分。我在Ubuntu 10.10上本地开发并部署到Ubuntu 10.04LTS服务器(媒体寺(实例))。
它们都运行相同的JVM:Sun JVM 1.6.0_22-b04
。作为初始化脚本的一部分,每个工人都以明确的Xmx
,Xms
和XX:MaxPermGen
设置启动。
然而在某些地方,所有10名员工都使用250MB,而在服务器上他们使用的是超过2.7GB。
我不知道如何开始追踪这个。我认为Ubuntu(也就是内核)版本可能会有所作为,但我尝试了一个旧的10.04虚拟机,它的行为如预期。
我注意到机器似乎没有使用内存缓冲区或缓存(根据htop
),这似乎有点奇怪,但也许正常的服务器?
(编辑) 一些信息:
(server)
[email protected]:/app/axir/target# uname -a
Linux devel 2.6.18-028stab069.5 #1 SMP Tue May 18 17:26:16 MSD 2010 x86_64 GNU/Linux
(local)
[email protected]:~$ uname -a
Linux beastie 2.6.35-25-generiC#44-Ubuntu SMP Fri Jan 21 17:40:44 UTC 2011 x86_64 GNU/Linux
(编辑) 比较PS输出:(ps -eo "ppid,pid,cmd,rss,sz,vsz"
)
PPID PID CMD RSS SZ VSZ
(local)
1588 1615 java -cp axir-distribution. 25484 234382 937528
1615 1631 java -cp /home/wiktor/Code/ 83472 163059 652236
1615 1657 java -cp /home/wiktor/Code/ 70624 89135 356540
1615 1658 java -cp /home/wiktor/Code/ 37652 77625 310500
1615 1669 java -cp /home/wiktor/Code/ 38096 77733 310932
1615 1675 java -cp /home/wiktor/Code/ 37420 61395 245580
1615 1684 java -cp /home/wiktor/Code/ 38000 77736 310944
1615 1703 java -cp /home/wiktor/Code/ 39180 78060 312240
1615 1712 java -cp /home/wiktor/Code/ 38488 93882 375528
1615 1719 java -cp /home/wiktor/Code/ 38312 77874 311496
1615 1726 java -cp /home/wiktor/Code/ 38656 77958 311832
1615 1727 java -cp /home/wiktor/Code/ 78016 89429 357716
(server)
22522 23560 java -cp axir-distribution. 24860 285196 1140784
23560 23585 java -cp /app/axir/target/a 100764 161629 646516
23560 23667 java -cp /app/axir/target/a 72408 92682 370728
23560 23670 java -cp /app/axir/target/a 39948 97671 390684
23560 23674 java -cp /app/axir/target/a 40140 81586 326344
23560 23739 java -cp /app/axir/target/a 39688 81542 326168
他们看起来非常相似。实际上,现在的问题是,如果我在服务器上累计虚拟内存使用量(3.2GB),它是否更能反映2.4GB内存(根据free
),但本地使用的虚拟内存合计为更大的4.7GB,但实际只使用〜250MB。看起来也许记忆不是被积极分享的。 (如果这甚至有可能)
感谢你的帮助,
Wiktor的
是您的服务器64位? – 2011-02-04 06:20:59
是的,但本地客户端也一样。 – wmacura 2011-02-04 06:29:19