手動擷取堆積傾印和線程傾印,並在 Azure Spring Apps 中使用 Java Flight Recorder
注意
Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。
本文適用於: ✔️基本/標準✔️企業
本文說明如何手動產生堆積傾印或線程傾印,以及如何啟動Java Flight Recorder (JFR)。
有效的疑難解答非常重要,以確保您可以修正生產環境中的問題,並讓您的企業保持在線。 Azure Spring Apps 提供應用程式記錄串流和查詢、豐富的計量發出、警示、分散式追蹤等等。 不過,當您收到高延遲、JVM 堆積流失或高 CPU 使用量的要求警示時,就不會有最後一英里的解決方案。 因此,我們可讓您手動產生堆積傾印、產生線程傾印,以及啟動 JFR。
必要條件
- 已部署的 Azure Spring Apps 服務實例。 若要開始使用,請參閱 快速入門:將第一個應用程式部署至 Azure Spring Apps。
- 至少有一個已在服務實例中建立的應用程式。
- 您自己的永續性記憶體,如如何在 Azure Spring Apps 中啟用您自己的永續性記憶體中所述。 此記憶體可用來儲存產生的診斷檔案。 您在下列參數值中提供的路徑應該位於系結至應用程式之永續性記憶體的掛接路徑之下。 如果您想要在掛接路徑下使用路徑,請務必事先建立子路徑。
產生堆積傾印
使用下列命令,在 Azure Spring Apps 中產生應用程式的堆積傾印。
az spring app deployment generate-heap-dump \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--app <app-name> \
--deployment <deployment-name> \
--app-instance <app-instance name> \
--file-path <your-target-file-path-in-your-persistent-storage-mount-path>
產生線程傾印
使用下列命令,在 Azure Spring Apps 中產生應用程式的線程傾印。
az spring app deployment generate-thread-dump \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--app <app-name> \
--deployment <deployment-name> \
--app-instance <app-instance name> \
--file-path <your-target-file-path-in-your-persistent-storage-mount-path>
啟動 JFR
使用下列命令,為 Azure Spring Apps 中的應用程式啟動 JFR。
az spring app deployment start-jfr \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--app <app-name> \
--deployment <deployment-name> \
--app-instance <app-instance name> \
--file-path <your-target-file-path-in-your-persistent-storage-mount-path> \
--duration <duration-of-JFR>
的預設值 duration
為 60 秒。
使用 Azure 入口網站產生傾印
使用下列步驟,在 Azure Spring Apps 中產生應用程式的堆積或線程傾印。
在 Azure 入口網站 中,流覽至您的目標應用程式,然後選取 [疑難解答]。
在 [ 疑難解答] 窗格中,選取應用程式實例和您想要收集的傾印類型。
在 [ 檔案路徑] 欄位中,指定永續性記憶體的掛接路徑。
選取 [ 收集]。
取得診斷檔案
流覽至永續性記憶體中的目標檔案路徑,並尋找您的傾印/JFR。 您可以從該處將其下載到本機計算機。 產生的檔名會類似於 <app-instance>_heapdump_<time-stamp>.hprof
堆積傾印、 <app-instance>_threaddump_<time-stamp>.txt
線程傾印,以及 <app-instance>_JFR_<time-stamp>.jfr
JFR 檔案的名稱。