Re-Introduction: Concurrent Mark-Sweep Garbage Collection @ Japan JUG Conference.Read less
以前の記事でトラブルが起きた後の初動対応を書いてみたが、いざトラブルに遭遇すると、まず再起動してからどうするか考えるケースが多いと感じている。しかし何も情報がないと『情報がない/再現方法が不明』などの理由からそのままお蔵入りになってしまう。今回はトラブルに事前に備えるために、地味だけど大切なJavaVMのオプションをまとめてみる。 GCログの出力とローテーション OutOfMemoryError発生時のヒープダンプ自動出力と出力パス設定 JavaVMクラッシュログの出力パス設定 JVMオプションの設定 (OpenJDK/OracleJDK) JavaVMにはGCおよびヒープメモリの状態をロギングする仕組みや、OufOfMemoryError時にヒープダンプを自動的に出力するような障害に備えて自動的に情報を出力する機能がある。おすすめのオプション*1は以下の通り。 java -Xms?g -
ガベージファースト・コレクタ ガベージファースト・コレクタとは ガベージファースト(G1)コレクタとは、大容量のメモリを搭載するマルチプロセッサを対象としたサーバースタイルのガベージ・コレクタです。ソフト・リアルタイム目標を高確率で達成し、かつ高いスループットを実現します。 G1は長期的には、並行マークスイープ・コレクタ(CMS)の後継となる技術です。 グローバル・マーキングなどのヒープ全体に対する処理は、アプリケーション・スレッドと並行して実行されます。これによって、割込みがヒープ・サイズまたはライブ・データ・サイズに比例して増加するのを防ぎます。 また、並行マーキングによって、コレクション処理の"完全性"が確保され、コンパクト化を伴う退避によって再利用の対象となるリージョンが特定されます。 この退避はマルチプロセッサ上で並行して実行されるので、一時停止の時間が短縮し、スループットが向上
以下の環境とテストでCMSとG1GCを比較してみた。かなり急ぎでやったので間違っている可能性が多少ある。 16 cores, 32GB mem -Xms24g -Xmx24g 8 instances Infinispan 6.0.3.Final DIST cache, put 4GB data (1KB entry * 2M, 2GB data with one backup copy, 2GB * 2 = 4GB) CMS: -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=30 G1GC: -XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:InitiatingHeapOccupancyPercent=30 $ java -XX:+UseG1GC -XX:+PrintFlagsFinal
プラットフォームエンジニアリングアーキテクチャ道場 on AWS & EKS Kubernetes / Platform Engineering Architecture Dojo
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く