기술지원 문의

감사합니다.. 하나만 더요..
이창형 / 2003-06-21 00:00

감사합니다..%RESIN_HOME\\bin\\httpd.exe -Xms128m -Xmx256m 이와 같은 세팅으로 어느 정도 해결이 된 듯한데요..

그런데.. java.exe 파일의 메모리 사용량을 보면 첨 레진을 Load 했을 때가 약 50M였었거든요.. 그런데 상당시간이 지나니까 메모리가 118M까지 증가를 합니다.. 그 후부터는 추가로 증가하는 증상이 없이 잘 돌아가는데요..

궁금한거는 메모리가 118M까지 올라가는게 정상적인 건지.. 어떤지 해서요.. 제 생각으로는 가비지 콜렉트 되면 위와 같이 118M까지 올라갈 이유가 없을꺼 같아서요..

이에 대한 답변 있으면 감사드리겠습니다..

그리고요..

어플리케이션에서 메모리 leak이 없다면.. 이라고 하셨는데.. \"어플리케이션에서의 memory leak\"이라는 의미가 구체적으로 무엇인지요?

--관리자 님의 글 [2003-06-19 11:13:46]
>어플리케이션에서 메모리 leak이 없다고 가정하면
먼저 resin Start 시 heap을 주시는 방안
%RESIN_HOME\\bin\\httpd.exe -Xms128m -Xmx256m 
JDK를 너무 낮은 버전을 사용하고 계시니 JDK를 Upgrade하는 방안 등이
있을 것 같고 가능하다면 둘다 해보시는 것이 좋을 듯 하네요.
Resin의 log들을 점검해보시고요.

--이창형 님의 글 [2003-06-18 09:59:50]
>안녕하세요.. 

jsp + Beans으로 개발돼 있는 solution이 있는데요.. 

jsp에서 scope=\"page\"로 Bean을 부릅니다. 

그럼 Bean에서는 약 10개의 쓰레드를 생성하여 원격 서버와 통신을 하고(데이타 패킷양 : 각 원격서버당 당 2,000 Bytes) 그 결과를 jsp에 던져주면 jsp는 일부 파싱과정을 거쳐서 display해 줍니다. 

그런데 하루에 약 2000번 정도의 원격서버와 통신을 하고 보면 JVM의 메모리가 계속 올라가는 현상이 생겨서.. 결국에는 java Engine을 리스타트해 줘야 하는 현상이 생기는데요.. 

머가 문제인지요 

Service 환경은  Window2000 Server + IIS5.0 + JDK1.2.1 + Resine2.1.9입니다.

Re:감사합니다.. 하나만 더요..
관리자 / 2003-06-23 00:00

-Xms128m는 JVM에게 Heap 메모리를 
최소한 이정도 이상 사용하겠다고 하는 옵션입니다.
그리고 말씀하신 것 처럼 서비스가 운용되면서
객체가 생성되고 Heap 을 활용하구요.
특정시점이 되면 말씀하신 JVM에서 사용하지 않는
메모리를 회수할 텐데요(가비지콜렉션).
문제는 언제 그것이 발생할 지는 알기 어렵습니다.
물론 지속적으로 모니터링하시면
어떤 순간에는 사용메모리가 줄어들겠지만
서비스가 계속된다면 항상 그 정도 겠지요.

어플리케이션에서의 메모리 leak은
가비지콜렉팅이 제대로 되지않는 코드로
JVM이나 WAS뿐만 아니라 사용자가
개발한 코드안에 있을 수 있다는 말씀입니다.



--이창형 님의 글 [2003-06-21 13:39:08]
>감사합니다..%RESIN_HOME\\bin\\httpd.exe -Xms128m -Xmx256m 이와 같은 세팅으로 어느 정도 해결이 된 듯한데요..

그런데.. java.exe 파일의 메모리 사용량을 보면 첨 레진을 Load 했을 때가 약 50M였었거든요.. 그런데 상당시간이 지나니까 메모리가 118M까지 증가를 합니다.. 그 후부터는 추가로 증가하는 증상이 없이 잘 돌아가는데요..

궁금한거는 메모리가 118M까지 올라가는게 정상적인 건지.. 어떤지 해서요.. 제 생각으로는 가비지 콜렉트 되면 위와 같이 118M까지 올라갈 이유가 없을꺼 같아서요..

이에 대한 답변 있으면 감사드리겠습니다..

그리고요..

어플리케이션에서 메모리 leak이 없다면.. 이라고 하셨는데.. \"어플리케이션에서의 memory leak\"이라는 의미가 구체적으로 무엇인지요?

--관리자 님의 글 [2003-06-19 11:13:46]
>어플리케이션에서 메모리 leak이 없다고 가정하면
먼저 resin Start 시 heap을 주시는 방안
%RESIN_HOME\\bin\\httpd.exe -Xms128m -Xmx256m 
JDK를 너무 낮은 버전을 사용하고 계시니 JDK를 Upgrade하는 방안 등이
있을 것 같고 가능하다면 둘다 해보시는 것이 좋을 듯 하네요.
Resin의 log들을 점검해보시고요.

--이창형 님의 글 [2003-06-18 09:59:50]
>안녕하세요.. 

jsp + Beans으로 개발돼 있는 solution이 있는데요.. 

jsp에서 scope=\"page\"로 Bean을 부릅니다. 

그럼 Bean에서는 약 10개의 쓰레드를 생성하여 원격 서버와 통신을 하고(데이타 패킷양 : 각 원격서버당 당 2,000 Bytes) 그 결과를 jsp에 던져주면 jsp는 일부 파싱과정을 거쳐서 display해 줍니다. 

그런데 하루에 약 2000번 정도의 원격서버와 통신을 하고 보면 JVM의 메모리가 계속 올라가는 현상이 생겨서.. 결국에는 java Engine을 리스타트해 줘야 하는 현상이 생기는데요.. 

머가 문제인지요 

Service 환경은  Window2000 Server + IIS5.0 + JDK1.2.1 + Resine2.1.9입니다.