我在應用服務器上從tomcat7升級到了tomcat8上我們的生產環境。硬件配置與舊env完全相同。Tomcat7到Tomcat8的性能下降(差不多有50%)
我看到平均響應時間增加了近50%(從204MS到〜450ms)我看着我們的APM,我可以看到JSP處理時間tomcat8應用服務器增加。
有人在這裏面臨過這個問題嗎?如果是這樣,請分享解決方案。
我在這裏安裝tomcat7和tomcat8關鍵事務細分。
我看到tomcat8上的JSP處理時間顯着增加。
Tomcat7:
我在應用服務器上從tomcat7升級到了tomcat8上我們的生產環境。硬件配置與舊env完全相同。Tomcat7到Tomcat8的性能下降(差不多有50%)
我看到平均響應時間增加了近50%(從204MS到〜450ms)我看着我們的APM,我可以看到JSP處理時間tomcat8應用服務器增加。
有人在這裏面臨過這個問題嗎?如果是這樣,請分享解決方案。
我在這裏安裝tomcat7和tomcat8關鍵事務細分。
我看到tomcat8上的JSP處理時間顯着增加。
Tomcat7:
最後我想通了:阿帕奇Tomcat8文檔幫我找出問題。
統一表達式語言3.0增加了對引用靜態字段和方法的支持。在JSP中支持此功能需要更改javax.servlet.jsp.el.ScopedAttributeELResolver實現,以便它還檢查標識符以查看它們是否是導入的類或字段的名稱。在某些情況下,這種變化會導致顯着的減速。這會影響可能引用頁面,請求,會話或應用程序作用域變量的標識符,或者可能未定義。未定義時,解析標識符將花費更長的時間,因爲現在還要檢查標識符是否是導入的類或字段。爲了避免這種緩慢下來,代碼如:
$ {未定義}
應替換:
$ {requestScope.undefined}
或類似,使用爲適當範圍該變量定義爲 。
以下是完整的文檔:https://tomcat.apache.org/migration-8.html#JavaServer_Pages_2.3
現在我的tomcat降低到7版本,並開始與開發商合作,以解決這個問題,希望能在下個月升級回tomcat8!