我有一組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