2011년 11월 21일 월요일

[weblogic]JVM -server -client 옵션

JVM -server -client 옵션

JVM에는 일반적으로 server client 두가지 옵션을 제공한다.
결론만 말하면 server 옵션은 WAS와 같은 Server환경에 최적화된 옵션이고, client옵션은 워드프로세서와 같은client application에 최적화된 옵션이다. 그냥 언뜻 보기에는 단순한 옵션 하나로보일 수 있지만, 내부에서 돌아가는hotspot compiler에 대한 최적화 방법과 메모리 구조자체가 아예 틀리다.

-server 옵션

server application에 최적화된 옵션이다. Server application boot up 시간 보다는 user에 대한response time이 중요하고, 많은 사용자가 동시에 사용하기 때문에 session등의 user data를 다루는게일반적이다. 그래서 server 옵션으로 제공되는 hotspot compiler java application을 최적화 해서빠른 response time을 내는데 집중되어 있다.

또한 메모리 모델 역시, 서버의 경우에는 특정 사용자가 서버운영시간동안 계속 서버를 사용하는게 아니기 때문에 (Login하고, 사용한 후에는 Logout되기 때문에..) 사용자에 관련된객체들이 오래 지속되는 경우가 드물다. 그래서 상대적으로 Old영역이 작고 New 영역이 크게 배정된다. <그림 7. 참조>

-client 옵션

client application은 워드프로세서 처럼 혼자사용하는 application이다. 그래서 client application response time보다는 빨리 기동되는데에최적화가 되어 있다. 또한대부분의 client application을 구성하는 objectGUI Component와 같이application이 종료될때까지 남아있는 object의 비중이 높기 때문에 상대적으로 Old 영역의 비율이 높다.




<그림 7. -server -client 옵션에 따른 JVM Old New영역>



이 두옵션은 가장 간단한 옵션이지만, JVM의 최적화에 아주 큰부분을 차지하고 있는 옵션이기 때문에, 반드시 Application의 성격에 맞춰서 적용하기 바란다.
(※ 참고로, SUN JVM default client, HPJVM default server로 세팅되어 있다.)

댓글 없음:

댓글 쓰기