기술지원 문의

[답변]
운영자 / 2002-03-19 00:00

JVM의 메모리 점유 증가로 인한 잦은 다운의 원인은 찾기 힘든 문제입니다. 원인이 프로그램의 문제인지 아니면 JVM자체의 문제인지 규명하기는 어렵습니다. 일단 해볼 수 있는 것은 최신 버전의 resin을 설치해 보는 방법과 java 버전을 변경해 보는 방법 그리고 각종 라이브러리의 update등이 있겠죠. 참고로 개인의 경험 상 프로그램 상의 때문에 메모리 점유 문제가 발생하는 일이 많았습니다. 
>========================================================

>제목 : Resin 서버의 잦은 다운 현상에 작성자 : 차재민 등록일 : 2002-02-22 22:02:07 

>---------------------------------------------------------------

>  안녕하세요. 


>Resin 으로 서비스를 하는 사이트에 잦은 다운 현상이 발생하여 


>아래와 같이 문의 드립니다. 





>현재 Resin의 잦은 다운으로 인하여 서비스에 많은 문제가 있는 상태입니다. 





>좋은 답변 부탁드립니다. 





>- 문제점 Resin 의 잦은 다운 현상 





>* 웹서버 


> - Pentium3 866㎒ × 2, 512MB 


> - Windows2000 Server + IIS + Resin 1.2.5 (jdk1.3) 





>* 프로그램 : jsp, servlet, java beans + oracle 








>* 문제점 


> - 웹서버가 하루에 2~5회씩 다운 


> - 웹서버 메모리는 평균 20~30% 사용중 


> - 웹서버 CUP 는 평균 10~20% 사용중 





> - 웹서버의 메모리와 CPU가 여유가 있음에도 불구하고 


> 웹서버의 Resin 이 다운됨. 





> - 접속자가 많은 시간에 다운 되는 것 같습니다. 





> - 같은 환경 설정으로해서 테스트로 돌아가고 있는 서버는 다운 현상이 없음.(접속자가 거의 없음) 





> - java.exe 프로세스 메모리가 


> 12,000KB## 52,000KB 까지 계속 증가함.(메모리가 줄어들지 않고 계속 증가) 


> - 사용자 접속이 거의 없는 시간에도 한번 증가한 java.exe 프로세스의 사용 메모리는 


> 줄어들지 않음. 


> - java.exe 프로세스 메모리가 40,000KB ~ 52,000KB 사이에 거의 Resin 다운 








> - DB 서버 : 솔라리스 + oracle 





> # top 


> last pid: 7024; load averages: 0.15, 0.19, 0.18 17:15:26 


> 139 processes: 81 sleeping, 56 zombie, 1 stopped, 1 on cpu 


> CPU states: 96.7% idle, 0.6% user, 2.0% kernel, 0.7% iowait, 0.0% swap 


> Memory: 1024M real, 18M free, 1218M swap in use, 1556M swap free 


> -> 솔라리스 oracle DB 서버에 free 메모리가 부족해서 그런 것인가요? 





> - DB 접속은 Connectionpool 사용 





> Resin.conf 파일을 첨부합니다. 





> 좋은 답변 부탁드립니다. 





>---------------- 아래는 resin.conf 파일 입니다 ------------------------- 





>## 


> - The Resin configuration file. 


> - 


> - This example file is more complicated than is needs to be because 


> - it makes several configurations explicit that can be simplified and 


> - because it needs to configure the examples. 


> - 


> - Look in conf/samples for more realistic sample configurations. 


> - conf/samples/simple.conf - a simple, basic configuration 


> - conf/samples/deploy.conf - a simple configuration for deployment 


> - 


> - The configuration is based on a purely element-based XML. To make 


> - it easier to read, attributes can be used as syntactic sugar. 


> - 


> - The following are equivalent: 


> - 13 - canonical representation, but verbose 


> - - typical configuration 


> - - sometimes useful 


> ## 








>## Resin logging. You can uncomment the following useful log. 


> - 


> - 








> - href=stderr: 


> - timestamp=[%H:%M:%S.%s]/> 


> ## 





>## Security providers. Adding JSSE looks like: 


> - 


> ## 





>## 


> - You can change the compiler to \"internal\" or jikes 


> - and change the work-dir 


> ## 








>## 


> - Sample database pool configuration 


> - The JDBC name is java:comp/env/jdbc/test 


> ## 





> jdbc/test 


> javax.sql.DataSource 


























>## 


> - Use precompiled JSP classes if available. 


> - static-encoding - optimization if you stick to one character set 


> ## 








>## 


> - For production sites, change class-update-interval to something 


> - like 60, so it only checks for updates every minute. 


> ## 





> ## 


> - The root file directory of the server. Apache users will change 


> - this to /usr/local/apache/htdocs and IIS users will change it 


> - to d:\\inetpub\\wwwroot 


> ## 


> d:\\inetpub\\wwwrott 





> ## the http port## 








> ## 


> - The srun port, read by both JVM and plugin 


> - 127.0.0.1 is the localhost 


> ## 








> ## 


> - How to add SSL: 


> - 


> - 


> - true 


> - pkcs12 


> - keys/server_cert.p12 


> - changeit 


> - 


> ## 





> ## 


> - Select an error page to display when the connection fails. 


> - 


> - 


> ## 





> ## To disable /caucho-status, set this to false## 


> false 





> ## maximum number of threads## 


> 150 





> ## 


> - How many threads to wait for keepalives. Should be at least the 


> - number of Apache processes to get good performance. 


> ## 





> ## 


> - How long an idle keepalive connection should listen to the socket. 


> ## 





> ## 


> - How many sockets to hold in the buffer before failing requests. 


> ## 





> ## 


> - Maximum number of request threads which will wait for a socket. 


> ## 








> ## 


> - Ping to test if the web server is still up. You can uncomment this 


> - and point it to pages on the webserver that exercise your main 


> - logic (like database access). If the GET fails, it will restart 


> - the server. This will catch deadlocks, but not JDK freezes. 


> - 


> - 


> - http://localhost:8080/ping/ping.jsp 


> - 


> ## 





> ## 


> - Enable internal caching. 


> - dir is the directory containing the cache 


> - size is the memory size in kb 


> - entries is the number of entries in the memory cache 


> ## 





>## ## 


> ## default host if no other host matches## 





> ## 


> - The standalone server should uncomment for access logging. 


> - With another web server, like Apache, the web server will 


> - log this information. 




> format=%h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"/> 


> ## 





> ## 


> - Specifies an automatically-expanding .war dir. Any foo.war 


> - file will be expanded to a /foo application. 


> ## 











> ## how often to check servlets for changes (id used for brevity)## 








> ## 


> - The classpath directive may be repeated. Source is optional 


> - Servlets and beans generally belong in WEB-INF/classes 


> ## 




> source=WEB-INF/classes 


> compile=false/> 





> ## 


> - Expires time for a cacheable file. Production sites will 


> - normally change this to 15m 


> ## 








> ## 


> - set the pages to be used as welcome (index) files 


> ## 


> index.xtp, index.jsp, index.html 








> 4096 


> 180 


> true 


> true 





> ## 


> - Store sessions in the filesystem, so they can persist across 


> - servlet and class changes. 


> - 


> - Uncomment this during development. 


> ## 





> WEB-INF/sessions 











> ## enable multipart-mime/form processing## 


> ## 


> - 


> ## 





> ## 


> - special mapping so /servlet/pkg.MyServlet invokes pkg.MyServlet 


> ## 
















> servlet-name=com.caucho.jsp.XtpServlet/> 




> servlet-name=com.caucho.jsp.JspServlet/> 





>--------------------- 이하 생략 --------------------- 





>좋은 답변 부탁드립니다. 

>========================================================