작은 JVM 업그레이드를 수행하는 것이 얼마나 안전합니까?


10

나는 몇 년 동안 JVM에서 일해 왔으며 거의 ​​6 개월 전에 JVM 충돌이 거의 발생하지 않았습니다.

2 개의 JVM 결함으로 인해 약 5 개의 JVM 충돌이 발생했습니다. 오라클의 솔루션은 항상 동일했습니다 ... 업그레이드.

각 업그레이드는 항상 포인트 릴리스로 또는 그 이후로 이루어집니다. 즉, 오라클의 최신 제안 (버그 수정을 확인한 후)은 1.6u20에서 1.6u26으로 업그레이드하는 것이 었습니다.

마이너 버전의 JVM을 어떻게 업그레이드해야합니까?

막대한 양의 회귀 테스트가 필요한 큰 이벤트입니까, 아니면 수용해야하는 안전한 업그레이드입니까?


3
문제의 JVM이 어떤 컨텍스트에서 실행됩니까? 게임 애플릿을 재생하기 위해 사용합니까 아니면 병원 정보 시스템을 실행합니까? 정답은 해당 정보에 따라 크게 다릅니다.
blubb

답변:


5

그것 해서는 안 마이너 버전을 업그레이드 할 수있는 큰 이벤트가 될, 나는 결코 경험이 문제를했습니다.

즉, 악명 높은 Java 7 문제 는 다소 무섭고 심지어 주요 버전 업그레이드가 어려웠으며 특정 문제는 실제로 Java 6 ~ u20에 나타 났으며 u25에서 수정되었을 수 있습니다. Java 7에는 기본적으로 Java 6에는없는 최적화 플래그가 활성화되어 있기 때문에 표면에 나타납니다. Java 6에서 이러한 플래그를 사용했다면 충돌뿐만 아니라 6u19에서 6u20 (약)으로의 약간의 업그레이드로 인해 루프의 잘못된 실행 , 즉 잘못된 계산이 발생할 수 있습니다.

사실, 아무도 업그레이드 된 버전이 전혀 작동하지 않을 것이라고 보장합니다.JVM, 해당 환경 (컴퓨터, OS) 및 응용 프로그램은 모두 서로 상호 작용하며 전체의 많은 자료가 잘 결합되도록 합리적으로 확신하려면 막대한 양의 회귀 테스트를 수행해야합니다.

JVM 업그레이드에 대한 나의 접근 방식은 모든 업그레이드와 비슷합니다. 업그레이드가 필요하지 않고 중요한 보안 업그레이드가 아닌 한, 잠시 기다렸다가 인터넷에서 다른 사람들의 경험을 읽습니다. 한 달 안에 아무도 불평하지 않으면 업그레이드해도 안전합니다.


인터넷에서 다른 사람들의 경험을 읽고 싶은 곳이 있습니까?
다코타 노스

@Dakotah North : 특정 장소가 아닙니다. 수많은 메일 링리스트에 매달리면 (예 : Java 7이 출시 된 시점에 중대한 문제에 대한 경고가 발생한 announce@apache.org 와 같은 ) 많은 종류의 정보가 제공됩니다.
Joonas Pulakka

4

엔터프라이즈 Java 애플리케이션에 대한 저의 경험에서, 작은 JVM 업데이트를 수용함으로써 얻을 수있는 이점은 관련 위험에 영향을 미칩니다.

한 가지 이점은 마이너 업데이트 에는 거의 항상 버그 수정이 포함 된다는 것입니다 . 이러한 업데이트를 적용하면 실제로 프로덕션 환경의 안정성을 향상시킬 수 있습니다. 근본 원인 분석에서 결함이 이미 작은 JVM 업데이트에서 식별되고 수정되었음을 나타내는 JVM 충돌이 발생했습니다.

또 다른 이점은 사소한 업데이트에는 종종 성능 향상이 포함된다는 것입니다 . 그러나 @Joonas가 지적했듯이 중요한 테스트없이 모든 업데이트 (주 또는 부)에서 입증되지 않은 실험 성능 플래그를 사용하는 것은 위험합니다.

변경과 마찬가지로 책임있는 방식으로 진행하는 것이 가장 중요합니다 . 다음은 JVM 업데이트를 계획 할 때 따르는 몇 가지 사례입니다.

  • 모든 릴리스 정보를주의 깊게 검토 하십시오현재 버전과 대상 버전 사이의 모든 사소한 업데이트에 대한 모든 를 하십시오.
  • 응용 프로그램 중단에 대한 사용자의 허용 오차와 그에 따른 회귀 테스트를 이해하십시오 . (@ 시몬)
  • 인터넷에서 다른 사람들의 경험을 조사 하십시오 (@Joonas)
  • 롤백 계획을 제자리에 (@Thorbjorn)

2

Oracle Java 1.6 u20 주변에는 "혼합 코드"에 대한 안전 점검 경고가 도입되어 일부 사용자의 응용 프로그램에 충돌이 발생했습니다. 이것은 약간의 업그레이드였으며 생산에 심각한 영향을 미쳤습니다.

항상 롤백을 준비하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.