Linux Tomcat Lab loading…

Azure App Service / TOMCAT|11.0-java21 / Resource LinuxTomcatUrano

0. Features

提供されているエリアの一覧 (GET /api/features)。

1. JVM

Runtime / VM 引数 / メモリ / GC。CATALINA_OPTS/JAVA_OPTS の効果はここの inputArguments で確認。

2. Environment

CATALINA_OPTS / JAVA_OPTS / JAVA_TOOL_OPTIONS / CATALINA_HOME / CATALINA_BASE 等。SECRET/KEY/PASSWORD/TOKEN を含む変数はマスク表示。

3. Tomcat Conf Viewer

App Service Linux Tomcat の active な conf/*.xml を生表示。

4. Connectors / Thread Pools (MBean)

Catalina:type=Connector,* / ThreadPool,* / GlobalRequestProcessor,* から実行時統計を取得。

5. Tuning Presets + az CLI Snippet

プリセット (G1GC / Parallel / ZGC / GC logging / OOM heapdump 等) と、それを適用する az webapp config appsettings set snippet を生成。

6. Heap Dump

HotSpotDiagnosticMXBean.dumpHeap/home/LogFiles/ に hprof を吐く。Kudu でダウンロード可。

7. DiagLab — 意図的障害

CPU spin / メモリリーク / hang を発生させて、ダンプ・JFR・スレッドダンプ採取を練習する。

採取コマンド cheat sheet
# Kudu (Bash) で java プロセスにアタッチして heap dump
ps -ef | grep java
jcmd <pid> GC.heap_dump /home/LogFiles/manual-$(date +%Y%m%d-%H%M%S).hprof

# スレッドダンプ
jcmd <pid> Thread.print > /home/LogFiles/thread-$(date +%Y%m%d-%H%M%S).txt

# JFR (Java Flight Recorder)
jcmd <pid> JFR.start name=lab duration=120s filename=/home/LogFiles/jfr-$(date +%Y%m%d-%H%M%S).jfr settings=profile

# /home/LogFiles を Kudu の FTP / Bash でダウンロード