首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Azure App Service 定制化 Java 執行環境 (三):Tomcat/JDK 參數調優與 HttpPlatformHandler 機制

     編輯:Java 綜合教學

Azure App Service 定制化 Java 執行環境 (三):Tomcat/JDK 參數調優與 HttpPlatformHandler 機制

背景

前文測試中,直接訪問站點 URL 看到的是系統自帶測試頁面 index.jsp (位於 /site/wwwroot/webapps/ROOT,Tomcat 預設根目錄)。為驗證 JVM 參數修改是否生效,需撰寫測試代碼列印 JVM 參數與記憶體資訊。

測試頁面部署

  1. 用 FileZilla 連線站點,進入 /site/wwwroot/webapps/ROOT,下載 index.jsp。
  2. 修改 index.jsp 加入 JVM 監控代碼 (使用 ManagementBeans 取得 heap/non-heap 大小、記憶體池詳情)。完整代碼見 GitHub。
  3. 上傳覆蓋原檔,重新開啟站點首頁,可見運行環境記憶體資訊。

預設環境觀察

小型實例 (1 core, 1.75GB RAM) 下:
初始 Heap 28664K,已用 ~54MB,最大 433MB。
PermGen:init=21504K, used=40890K, committed=40960K, max=83968K。

實例升級驗證自動調優

將實例升級為中型,預設 Heap 大小自動變化:

Azure 如何動態調整 Tomcat 參數?底層為 Windows Server + IIS,透過 HttpPlatformHandler 模組管理第三方伺服器 (Tomcat/Jetty/Node.js):

  1. IIS 接管所有 HTTP 請求,轉發至後端真實伺服器 (如反向代理)。
  2. 管理第三方程式啟動、參數設定、環境定制,全由 web.config 配置實現。

定制化 JVM 參數實戰

需求:修改 Heap Size 與 PermGen 大小 (避免 OOM)。在 web.config 設定 JAVA_OPTS:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <handlers/>
    <httpPlatform arguments="" processPath="%AZURE_TOMCAT7_HOME%\bin\startup.bat">
      <environmentVariables>
        <environmentVariable name="CATALINA_OPTS" value="-Dport.http=%HTTP_PLATFORM_PORT%" />
        <environmentVariable name="JAVA_OPTS" value="-Djava.net.preferIPv4Stack=true -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=256m" />
      </environmentVariables>
    </httpPlatform>
  </system.webServer>
</configuration>

注意: 預設 Tomcat 路徑 %AZURE_TOMCAT7_HOME%\bin\startup.bat,Java 參數放入 JAVA_OPTS。

驗證結果

上傳 web.config 至 /site/wwwroot,刷新測試頁:

  • Heap:init=524288K (512MB), max=932352K (910MB)
  • PermGen:init=131072K (128MB), max=262144K (256MB)

透過 web.config + HttpPlatformHandler 成功實現 Azure 站點 Java 環境定制化。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved