Maven、jetty、scala、scalate、およびscalate-sspを使用して、単純な「hello world」Webサーバープロジェクトを実行しています。
「mvn jetty:run」でプロジェクトを実行すると、120Mb の RSS メモリが必要になります (ps -o rss,etime,pid,command)。
ただし、まったく同じプロジェクトを別のコンピューターで実行すると、480Mb の RSS メモリが必要になります。
最初のコンピューター、mac: uname -a
Darwin mac.local 11.4.0 Darwin Kernel Version 11.4.0: Mon Apr 9 19:32:15 PDT 2012; root:xnu-1699.26.8~1/RELEASE_X86_64 x86_64
2 番目のコンピューター、Linux: uname -a
Linux linux.local 2.6.32-220.2.1.el6.x86_64 #1 SMP Fri Dec 23 02:21:33 CST 2011 x86_64 x86_64 x86_64 GNU/Linux
この違いを説明できるものは何ですか?
メモリが制限された環境があります。2 台目のコンピュータの RSS メモリを減らす方法は?
joakime の回答からの更新:
マック:
Java HotSpot(TM)
Java version: 1.6.0_33, vendor: Apple Inc.
Apache Maven 3.0.3 (r1075438; 2011-02-28 18:31:09+0100)
Linux:
OpenJDK
Java version: 1.6.0_24, vendor: Sun Microsystems Inc.
Apache Maven 3.0.4 (r1232337; 2012-01-17 09:44:56+0100)
Mac の Runtime.getRuntime().maxMemory() は 120Mb、Linux は 3500Mb でした。
今、私は次のように実行します:
export MAVEN_OPTS="-Xmx256m -Xms10m"; mvn jetty:run
これにより、Linux では Runtime.getRuntime().maxMemory() が (3500Mb ではなく) 227Mb になります。
ただし、「ps -o rss,etime,pid,command」を実行すると、それでも 430Mb の RSS メモリが得られます。RSS メモリを 250Mb 未満にする必要があります。
これを達成する方法は?