머리말
다양한 서버 환경 중 HP-UX 운영체제로 구성된 서버에서 해당하는 내용이다. JVM 시간 값과 서버의 시간 값이 서로 달라서 장애가 발생할 수 있다. 본 포스팅에서는 HP-UX 서버와 JVM 시간 값을 일치시키는 옵션에 대해서 소개한다.
HP-UX 서버 시간 일치 옵션
JDK 1.3.1 이전 버전에서는 필요시 시스템 호출을 통해 서버로부터 시간을 얻었다. 이러한 상황을 개선하기 위해 JVM이 구동될 때, 서버의 시간을 얻어온 뒤 자체적으로 시간을 계산하는 방법을 도입했다. 시간을 가져오는 부분에 있어서 성능 적인 측면은 분명한 개선이 있었지만 정확성에서 문제가 발생할 수 있다. 애플리케이션이 자주 재기동되지 않는 상황에서 고도의 정확성을 요구한다면 아래에 소개하는 Java 옵션을 사용할 수 있다.
-XX:+UseGetTimeOfDay
서버의 시간이 필요한 경우 시스템 호출을 통해 시간 값을 얻어온다.
-XX:+UseHighResolutionTimer
JVM 구동 시 시스템 호출을 통해 시간 값을 얻어오며, 그 이후 CPU 레지스터를 활용해 시간을 유지시킨다. CPU 스케줄링에 의해 정확성은 조금 떨어질 수 있다.
꼬리말
위에서 설명한 두 개의 Java 옵션을 설정하면 비교적 성능과 정확성을 유지할 수 있다. -XX:+UseGetTimeOfDay 옵션으로 JVM 시간을 자체적으로 계산하면서, -XX:+UseGetTimeOfDay 옵션으로 CPU 상황에 따라 서버의 시간 값으로 동기화된다고 이해하면 어렵지 않다. HP-UX 서버와 JVM 사이에 발생하는 시간 차이를 해결하는 방법을 소개한 본 포스팅은 이로써 마무리를 짓도록 한다.
소중한 댓글 (0)