手動擷取堆積傾印和線程傾印,並在 Azure Spring Apps 中使用 Java Flight Recorder

注意

基本標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告

標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps

本文適用於: ✔️ 基本/標準 ✔️ 企業

本文說明如何手動產生堆積傾印或線程傾印,以及如何啟動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 中產生應用程式的堆積或線程傾印。

  1. 在 Azure 入口網站 中,流覽至您的目標應用程式,然後選取 [疑難解答]。

    顯示應用程式 [概觀] 頁面的螢幕快照,其中已醒目提示 [疑難解答] 按鈕。 Azure 入口網站

  2. 在 [ 疑難解答] 窗格中,選取應用程式實例和您想要收集的傾印類型。

    [Azure 入口網站 疑難解答] 窗格的螢幕快照。

  3. 在 [ 檔案路徑] 欄位中,指定永續性記憶體的掛接路徑。

  4. 選取 [ 收集]。

取得診斷檔案

流覽至永續性記憶體中的目標檔案路徑,並尋找您的傾印/JFR。 您可以從該處將其下載到本機計算機。 產生的檔名會類似於 <app-instance>_heapdump_<time-stamp>.hprof 堆積傾印、 <app-instance>_threaddump_<time-stamp>.txt 線程傾印,以及 <app-instance>_JFR_<time-stamp>.jfr JFR 檔案的名稱。

下一步