質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.35%

【Linux】freeコマンドでjavaヒープ領域を確認したい

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 5,161

Chi

score 13

知りたいこと

linuxでfreeコマンドを実行すると下記のように表示されると思いますが、
linuxで1GBのヒープ領域を取るjavaプログラムを実行しても
メモリの使用量(-/+ buffers/cache:のused)が1GB増えないのは何故でしょうか。

実際に試したところメモリの使用量は0.08GB程度しか増えていません。
(計算:1216212-1130764=85,448(KB))

free
             total       used       free     shared    buffers     cached
Mem:       8062812    7593700     469112          0     239296    6223640
-/+ buffers/cache:    1130764    6932048
Swap:      4128760      21284    4107476

▼1GBのヒープをとるjavaプログラム実行後
free
             total       used       free     shared    buffers     cached
Mem:       8062812    7679112     383700          0     239296    6223604
-/+ buffers/cache:    1216212    6846600
Swap:      4128760      21284    4107476

試したこと

javaヒープ内のメモリ使用状況はみる必要はないかと思いますが、
念のためjavaヒープをどれくらい使用しているか確認した結果は以下の通りです。

javaヒープの使;用量を確認すると
計算:S0U+S1U+EU+OU+PU
167838.5+148.3+22026.6=190,013.4(KB)=0.18(GB)
(javaプログラム実行前後のfreeコマンドで確認した0.08GBよりも多いです)

 S0C    S1C    S0U    S1U      EC       EU        OC         OU       PC     PU    YGC     YGCT    FGC    FGCT     GCT
52416.0 52416.0  0.0    0.0   419456.0 167838.5  524288.0    148.3    32768.0 22026.6      0    0.000   1      0.006    0.006

補足情報(言語/FW/ツール等のバージョンなど)

uname -a
Linux COLTVSVMSRP21 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

0

「1GBのヒープを取った」というのは論理メモリの話です。freeで表示されるのは物理メモリの話です。
なので、直接にはリンクしません。
OSに対してJavaVMが使用論理メモリを増やしたとしても、そのメモリにアクセスに行かないと物理メモリは割り当てられません。

「その1GBのメモリを先頭から末尾までひたすら書き込み続け、それを繰り返す」ようなプログラムであれば、物理メモリ使用量も1GB近く増えると思います。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/07/11 15:38

    ご回答ありがとうございます!

    リンクしていないのですね。てっきり物理メモリの1GBを確保するのかと思っていました。
    その考えだと、上記の「試したこと」に書いたように、
    Javaヒープのうち0.18GBを使用していれば、物理メモリ上の使用量も0.18GB増えるような気がしますが、
    どうして0.08GBしか増えないのでしょうか。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.35%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る