2010-02-22 3 views
1

Tomcat 6.0을 제공하는 VPS가 있습니다. 메모리가 2 개인 경우 500MB의 메모리로 충분했습니다. 지난 주에 다른 웹 응용 프로그램을 배포하고 Tomcat server.xml을 편집하는 새로운 가상 호스트를 만들었습니다. 하지만 서버 응답 속도가 느려지고, 리눅스 스왑을 먹기 시작했다. 메모리를 750MB로 늘리면 다시 안정화됩니다. 하지만 메모리는 그렇게 저렴하지 않으므로 각 추가 응용 프로그램에 250MB RAM을 지불하지 않아도됩니다.Tomcat 메모리 및 가상 호스트

각 웹 응용 프로그램에 대해 "250MB 추가 메모리 필요"가 정상입니까? 이 비용을 줄이기위한 해결책이 있습니까? 예를 들어 "이러한 응용 프로그램의 공용 라이브러리를 Tomcat의 공유 폴더에 저장"하면 Tomcat 메모리 및 성능에 긍정적 영향을 미칩니 까?

참고 : 배포 된 응용 프로그램은 Spring, 최대 절전 모드, sitemesh 및 관련 라이브러리를 사용하는 웹 응용 프로그램이며 최대 war 파일 크기는 최대 30MB입니다.

감사합니다.

답변

1

이 메모리가 Spring/Hibernate/등 클래스 자체에 의해 소비되는 것은 거의 없습니다. 따라서 .jar 파일의 크기는별로 중요하지 않습니다. 이러한 라이브러리를 Tomcat의 공유 라이브러리 디렉토리에두면 이러한 클래스의 사본 하나만로드되지만 저장하지 않아도되므로 약간의 메모리를 절약하는 데 도움이됩니다.

응용 프로그램이이 많은 메모리를 데이터 등으로 사용하고 있다는 것만 큼 간단하지는 않습니까? 프로파일 러를 사용하여 힙 메모리를 먼저 소비하는 것을 파악해야합니다. 문제를 알기 전까지는 특정 솔루션을 추구하는 데별로 도움이되지 않습니다.

+0

예 어쩌면 내 응용 프로그램에 문제가있는 것입니다. 사실 내 응용 프로그램은 Grails 웹 응용 프로그램입니다. 기본 Grails 컨트롤러, 서비스 등을 사용합니다. 일반적인 Grails 응용 프로그램의 메모리 요구 사항을 검색합니다. 어쩌면 최대 절전 캐싱을 과도하게 사용하는 것일 수도 있습니다. – javanes

+0

Grails 1.37> 이상에서 = 최적의 성능을 위해서는 512mb가 권장됩니다. 256MB는 아마도 너무 얇은 것입니다. Grails는 강력한 솔루션이지만 문자 그대로 비용이 든다. 네가 말했듯이, 기억은 싸지 않다 ... – virtualeyes

0

응용 프로그램의 메모리 사용량을 측정해야한다고 생각합니다. VisualVM 및 JHat와 같은 프로파일 링 도구에서 JProfiler 또는 Java6 빌드를 사용할 수 있습니다 (시작하는 가장 좋은 방법).

확인 대한 추가 정보를 원하시면이 링크 : http://java.sun.com/developer/technicalArticles/J2SE/monitoring/

관련 문제