2017-10-13 399 views
0

我在應用服務器上從tomcat7升級到了tomcat8上我們的生產環境。硬件配置與舊env完全相同。Tomcat7到Tomcat8的性能下降(差不多有50%)

我看到平均響應時間增加了近50%(從204MS到〜450ms)我看着我們的APM,我可以看到JSP處理時間tomcat8應用服務器增加。

有人在這裏面臨過這個問題嗎?如果是這樣,請分享解決方案。

我在這裏安裝tomcat7和tomcat8關鍵事務細分。

我看到tomcat8上的JSP處理時間顯着增加。

Tomcat7:

Tomcat7 Key transaction breakdown

Tomcat8: Tomcat8 Key transaction breakdown

回答

0

最後我想通了:阿帕奇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!