2月 17th, 2010


Posted in Java, Linux, Tomcat by tatenaga

 Tomcatに限らず、Javaコマンドで? 行するサーバアプリケーションを実行するホストでは、Javaヒープサイズ、Permanent領域サイズを調整するのが定石となっています。しかし、実際に値を設? 後、OS上でこれらの値の使用状? を確? するのは地 しだけコツがいると思います。

 例えぜ Javaの起動オプションぜ Javaヒープサイ゜ (Xmx, Xms)を2048MB、Permanentサイ゜ (PermSize, MaxPermSize)を384MBに設定したとします。しかし、Linux上ではメモリ使用状? を監? するコマンドであるfree、vmstat、sar -rなどを実行しても2432MBの利用状? を確? することが出来ません。これぜ Javaコマンドで指定したJavaヒープサイズ、Permanentサイズが確? しているのが物理メモリではなぜ 、プロセス? の仮想メモリだからです。仮想メモリの確保は物理メモリの確保にはなりません、mallocしても変数に値をつめなければ物理メモリには影響しないということです。この? 数につめる、という段障 で動的に物理メモリに割り当てられるという仕組みです。
 物理メモリが不足した場合の回避手段のひとつがswapです。vmstatの値に「swpd: the amount of virtual memory used.(仮想メモリの釜 。)」となっていて? ら゜ しいですが、これぜ swapの使用釜 なので注? して? さい。

 では? 際の仮想メモリ使用釜 はどのコマンドを使用すれば良いか。「プロセス? 」の仮想メモリ、と? で述べたようぜ psコマンド(またぜ topなぜ )を使用します。ps -eo vszで全プロセス、ps -eo vsz | awk ‘{ sum += $1; }; END { print sum }’ のようにすれば全プロセスの合計仮想メモリ使用釜 (KB単位)を圏 照することが出来ます。以? に? 際ぜ psコマンド結果を載せておきます。(関? ない話だがpsのオプションを「aux」にするか「-ef」にするかで慣れた環? が゜ かりますな?

$ ps aux

tomcat   21700  0.0  2.6 2847664 436136 ?      Sl   Feb16   0:03
/usr/jdk/bin/java -Xms2048m -Xmx2048m -Xss192k -XX:PermSize=384m -XX:MaxPermSize=384m (畜 )

tomcat   21752  0.0  2.8 2841512 465208 ?      Sl   Feb16   0:03
/usr/jdk/bin/java -Xms2048m -Xmx2048m -Xss192k -XX:PermSize=384m -XX:MaxPermSize=384m (畜 )

 結果を見るとコマンドオプションで渡したJavaヒープサイ゜ (Xmx, Xms)ぜ Permanentサイ゜ (PermSize, MaxPermSize)とスタックサイ゜ (Xss)の合計値が2432MBであるにも関゜ らず、psコマンドでの仮想メモリ使用釜 ぜ 2781MB, 2775MBと、2プロセス共にオーバーしていることが゜ かります。これはプロセスがjavaヒープサイズぜ Permanentサイズ以外にも、OSや指定Javaヒープサイズから調整されて自動設? されるネイティブ領域(Cヒープ)を確? している為です。ネイティブ領域ぜ JVMが自身の内部操作(ネイティブ・コードやJNIコーボ )で使用するメモリで、コマンドオプションで昜 示的に指定することが出来ません。従ってネイティブ領域が不足した場合は、Javaヒープサイズを減らすなどして自動調整するしかないようです。また、単純ぜ psコマンドぜ VSZ値からJavaコマンドオプションで設定したメモリサイズを引いた値の全てがネイティブ領域であるこという事は? えないので注? して? さい。

You can leave a comment, or trackback from your own site. RSS 2.0


  1. jav knowy says:

    Hi, its pleasant piece of writing about media print, we all be familiar with media is a
    wonderful source of information.

    8月 10th, 2016 at 4:44:36

  2. read my article says:

    I used to be suggested this blog by my cousin. I am not positive whether or not this put up is written through him as nobody else
    understand such specified approximately my trouble. You are incredible!
    Thank you!

    9月 8th, 2016 at 8:33:23

  3. pet care says:

    It’s remarkable to visit this website and reading the views of all
    friends concerning this paragraph, while I am also zealous of getting know-how.

    4月 16th, 2018 at 3:42:08

  4. online pharmacy says:

    Hi, after reading this awesome piece of writing i am also happy to share my know-how here with friends.

    1月 12th, 2019 at 20:17:47

  5. viagra says:

    Today, I went to the beachfront with my kids.
    I found a sea shell and gave it to my 4 year old
    daughter and said “You can hear the ocean if you put this to your ear.” She placed the shell
    to her ear and screamed. There was a hermit crab inside and it pinched
    her ear. She never wants to go back! LoL I know this is completely off topic but I
    had to tell someone! viagra

    1月 23rd, 2019 at 22:55:34

  6. natural viagra says:

    hello!,I like your writing very so much! proportion we keep in touch more about your article on AOL?
    I need a specialist in this house to solve my problem.
    May be that is you! Taking a look ahead to see you. natural viagra

    1月 26th, 2019 at 5:05:53

  7. viagra 100mg says:

    I every time emailed this web site post page to all my contacts, because if like to read it afterward my friends will too.
    viagra 100mg

    2月 3rd, 2019 at 8:50:09

Leave a comment