날짜별 글 목록: 2010년 7월 20일

tomcat 하위 버전의 memory leak에 대한 내용..

이것도 문서를 정리하다가 발견했네요. ^^

1. 톰캣 메모리 릭 : http://java.dzone.com/articles/memory-leak-protection-tomcat
 웹 어플리케이션을 로딩할때, 클래스 로더가 각 어플리케이션별로 세팅이 되고, 이 로더가 클래스를 다시 로딩하면서 기존의 클래스들에 대한 reference를 클래스 로더가 유지를 하고 있어서 eden 영역의 메모리가 차는 현상이 발견. 결과로 OutOfMemory Error

2. 패치 : 7.0대 버전에서 발견되서, 6.0.24  버전(http://mirror.khlug.org/apache/tomcat/tomcat-6/v6.0.24/RELEASE-NOTES)에 반영

java server start option recommeded

문서를 정리하다가 전에 정리된 문서에서 아래와 같은 내용이 있어서 포스팅 합니다..
단, 출처는 생각이 안 나네요. ^^;;

The following set of command line options are recommended for running high performance server applications:

-XX:+AggressiveOpts
-XX:+AggressiveHeap
-XX:ParallelGCThreads=2
-XX:InterpreterProfilePercentage=10
-XX:CompileThreshold=35000
-XX:OnStackReplacePercentage=80
-XX:PermSize=256m
-XX:MaxPermSize=256m
-XX:AllocatePrefetchStepSize=128
-XX:AllocatePrefetchStyle=2
-XX:AllocatePrefetchDistance=1024
-XX:+UseCompressedOops if heap size is less than 32GB
-Xmx, -Xms, -Xmn should have sufficiently large values.
(For example, -Xms6600m -Xmn5000m -Xmx6600m or -Xms20000m -Xmn18000m -Xmx20000m.)

ubuntu(linux) server에서 java 설치하기

1. 다운로드 : http://java.sun.com/javase/downloads/index.jsp

Java SE Development Kit 6u21
* jdk-6u21-linux-i586.bin

2. 파일 퍼미션 변경 : chmod 700 jdk-6u21-linux-i586.bin

./jdk-6u21-linux-i586.bin 실행

jdk1.6.0_21

3. 풀린파일 복사 : sudo cp -r jdk1.6.0_21 /usr/local

4. 링크 : sudo ln -s /usr/local/jdk1.6.0_21/ /usr/local/java

5. 환경설정
/etc/profile 에 아래와 같이 기술을 하고 저장을 한다. 
JAVA_HOME=/usr/local/java
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=$CLASSPATH:$JAVA_HOME/lib

6. 설정확인
source /etc/profile 을 통해서 환경설정을 확인한다.

7. 확인
java -version