- PR -

JDK11.8 のガーベッジコレクション動作について

1
投稿者投稿内容
ちゃー
会議室デビュー日: 2004/08/05
投稿数: 2
投稿日時: 2004-08-05 17:42
JDK118では、ガーベッジコレクション処理はシングルスレッドで行われるため、
SMPサーバで複数CPUを持っていたとしてもガーベッジコレクタは1つのCPUだけを使用すると理解しています。

ある時、GC処理時間が長いことがあるという問題が発生したため、4CPUのサーバと2CPUのサーバ(CPU性能は同じ)を比較調査したところ、2CPUのサーバのみGC処理に時間がかかるケースがあることがわかりました。

ガーベッジコレクタは1つのCPUだけを使用するから、CPUがいくつあってもGC処理にかかる時間はどちらのサーバも同じでないと理屈にあわないように思えるのですが、
実際にはCPU数が少ないサーバでのみGC処理時間が長いケースがありました。
ある程度のGC回数の統計をとったので、たまたまということは考えられません。
どなたか理由がわかる方いらっしゃいませんか?
未記入
大ベテラン
会議室デビュー日: 2003/06/28
投稿数: 219
投稿日時: 2004-08-05 22:50
# SMPについてはあまり詳しくないので、明確な回答ではないかもしれません・・・。
GC処理といっても、実際はOSのライブラリの力を借りていると考えられますので
OSがSMP対応だったとすれば処理時間に差が出てくると考えることができるのでは
ないでしょうか?
それから、GC処理中に他の処理を同時実行している場合は違いが出ると考えられます。

# JDK11.8 → JDK1.18 ということですよね (^^;
ちゃー
会議室デビュー日: 2004/08/05
投稿数: 2
投稿日時: 2004-08-06 15:35
Ken-Labさん、Replyありがとうございます。
実機でCPUごとの使用状況を確認してみることにしました。
何かわかったら今後の参考のために
UPしておきます。
1

スキルアップ/キャリアアップ(JOB@IT)