2017-09-14 3 views
0

Tomcat에서 (병렬 배포를 사용하여) 배포 프로세스에서 새로운 응용 프로그램 버전을 배포하면 사용 가능한 모든 CPU 리소스가 소비된다는 것을 알게되었습니다. 이는이 앱의 요청 응답 시간을 허용 할 수없는 값으로 만들고 애플리케이션 서버 당 몇 분의 영향을 의미합니다.병렬 배포 중 Tomcat 성능 저하

새 앱 버전을 배포하는 데 소비하는 리소스를 제한/제한/우선 순위 지정하여 이전 앱 버전이 허용 가능한 응답 시간에 요청을 계속 처리 할 수있는 방법이 있습니까?

우리는 Tomcat 8.5.20을 사용하고 있습니다.

+0

병렬 배포를 사용하지 않는 경우의 동작은 무엇입니까? 병렬 배포에 대해 언급하면서 여러 응용 프로그램을 한 번에 배포한다고 가정합니다. 공통적 인 부분이 많습니다. 일반적으로 동시에 많은 부분을 업데이트하거나 단순히 순서를 바꿀 수 있습니까? –

+0

Tomcat 당 하나의 앱만 있습니다. 병렬 배포 란 https://tomcat.apache.org/tomcat-8.5-doc/config/context.html#Parallel_deployment – Stephan

+0

에 설명 된대로 제로 다운 타임을 달성하기 위해 동일한 앱의 다른 버전을 실행한다는 의미입니다. 문맥에 대한 오해의 소지가 있음 . 전날 토론이 있었기 때문에 완전히 다른 방향으로 이끌었습니다. 필자는 병렬 배포를 사용한 적이 없지만 가능성에 매료되었습니다. 그러나 일반적으로로드 밸런서를 통해 컴퓨터 중 하나를 업데이트 균형 조정에서 제거하고 다른 컴퓨터를 인계받습니다. 트래픽이 적은 사이트 : 그냥 해보십시오. 나는 다른 사람들에게 대답을 남겨 둘 것이다. –

답변

0

짧은 대답은 아니오입니다.

이 경우 응용 프로그램 배포에 Tomcat이 단일 스레드를 할당합니다. (시작 프로세스 중에 응용 프로그램을 병렬로 배포하도록 Tomcat을 구성 할 수 있지만 기본값은 단일 스레드입니다.

Tomcat 프로세스에서 사용할 수있는 코어가 여러 개인 경우 단일 스레드가 사용 가능한 모든 CPU를 사용할 수 없어야합니다. 기껏해야, 단일 코어를 소비해야합니다. 이는 응용 프로그램 시작 코드가 멀티 스레드임을 나타냅니다. 응용 프로그램의 초기화 코드를 변경하는 방법을 알아보기 위해 프로필을 사용하는 것이 좋습니다.

Tomcat은 응용 프로그램 배포를 수행하는 스레드의 스레드 우선 순위를 제어하는 ​​옵션을 추가 할 수 있지만 변경으로 인한 영향에 대해 충분히 모르기 때문에 위험 및 이점을 계량화 할 수 없습니다.