2017-10-13 4 views
0

Google은 프로덕션 환경에서 tomcat7에서 tomcat8으로 앱 서버를 업그레이드했습니다. 하드웨어 구성은 이전 환경과 정확히 동일합니다.Tomcat7에서 Tomcat8 성능이 저하되었습니다 (거의 50 %)

응답 시간이 거의 50 % 증가했습니다 (204ms에서 450ms로) 나는 APM을보고 Tomcat8 응용 프로그램 서버에서 JSP 처리 시간이 늘어난 것을 볼 수 있습니다.

누구나 전에이 문제에 직면했습니다. 그렇다면 솔루션을 공유하십시오.

여기에 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

내가 버전 7에 바람둥이를 분해하고 문제를 해결하기 위해 개발자와 협력, 희망이 다음 달에 의해 다시 tomcat8로 업그레이드합니다 시작 :

다음은 전체 설명서입니다!