1

Java アプリケーションを実行すると、新しい rhel62 マシンでより多くのメモリが必要になります。rhel55 では、同じプログラムのメモリ使用量が少なくなります。

非常に単純な「HelloWorld」Java プログラムを作成し、実行しました。これも rhel62 で大量のメモリを必要とします。Rhel55 と Rhel62 の両方で Java_1.7 を使用しています

import java.io.* ;
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
        Console console = System.console();
        String input = console.readLine("Enter ...:");
        System.out.println(input);
    }
}
$ /usr/java/jdk1.7.0_09/bin/javac hello.java
$ /usr/java/jdk1.7.0_09/bin/java HelloWorldApp
Hello World!
Enter ...:

Java アプリケーション オン トップ コマンド

rhel62 : Linux qaatestp 2.6.32-71.el6.x86_64 #1 SMP Wed Sep 1 01:33:01 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 5069 qaatestp  20   0 5557m  18m 7604 S  0.0  0.1   0:00.11 java
31719 qaatestp  20   0  105m 1972 1468 S  0.0  0.0   0:00.35 bash

rhel55 : Linux qa2testp 2.6.18-238.5.1.el5 #1 SMP Mon Feb 21 05:52:39 EST 2011 x86_64 x86_64 x86_64 GNU/Linux

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
18065 qa2testp  17   0 2400m  14m 7508 S  0.0  0.2   0:00.22 java
17244 qa2testp  15   0 66196 1784 1232 S  0.0  0.0   0:00.81 bash

rhel62 でこのように動作する理由がわかりません。このため、不必要な問題に直面しています。これはLinux rhel6.2 の問題ですか? またはJavaの問題?または問題ありませんか?:)

サポートチームに尋ねる前に、ここでこれを提起することを考えました. あなたの提案を教えてください。

4

3 に答える 3

3

返信ありがとうございました。

これは、Rhel6 でメモリ割り当てが変更されたためです。RHEL6 は、スレッドごとに個別のメモリ チャンクを割り当てています。マルチコア プロセッサでは、これによりパフォーマンスが向上しますが、メモリ オーバーヘッドが発生します。環境変数 MALLOC_ARENA_MAX があり、この値を 1 に設定すると、このメモリ割り当てが減少します。詳細については、次のリンクを参照してください。

Linux glibc >= 2.10 (RHEL 6) malloc で過剰な仮想メモリ使用量が表示される場合がある

ありがとう

于 2013-01-08T15:17:18.863 に答える
2

VIRT列を見ただけで簡単に判断するべきではありません。これは単に、この量の仮想メモリが割り当てられたことを意味します。この仮想メモリは、実際にアクセスされることはありません。

RESただし、 (常駐) およびSHR(共有) メモリ列には細心の注意を払ってください。あなたの場合、違いはそれほど大きくありません。常駐メモリの場合はわずか14MBと18MBで、共有の場合は本質的に同じです。

于 2013-01-08T06:51:41.200 に答える
0

Javaはデフォルトで、起動時のメインメモリサイズの1/4である最大ヒープサイズを設定します。より多くのメモリを使用すると、起動時にそれ自体が許可する仮想メモリが増えます。これは、より多くの常駐メモリを使用することを意味するのではなく、多くの場合、使用することを意味することに注意してください。

推測では、古いマシンには12 GBがあり、新しいマシンには24GBがあります。

于 2013-01-08T07:23:20.620 に答える