'JAVA_OPT'에 해당되는 글 2건

  1. 2014.10.02 [ElasticSearch] GC 튜닝 참고.
  2. 2012.06.13 JVM Memory 튜닝.

[ElasticSearch] GC 튜닝 참고.

Elastic/Elasticsearch 2014.10.02 11:32

gc 관련 문의주신 분이 계셔서 공유해 드리기로 약속했습니다.

그래서 공유 합니다.


우선, gc 옵션 값은 정답이 정해져 있는게 아닙니다.

지속적으로 관리를 해주셔야 합니다.


elasticsearch 에서 gc 관련 영향을 미치는 것들은 주로 아래 내용들에 대해서 살펴 보셔야 합니다.

- segment merge policy

- 검색 질의에 대한 유형 및 데이터 크기

- field, filter 관련 cache 관리

- facet, aggregation에 대한 유형 및 데이터 크기

- jdk 7 이상 사용

- 등등등..


제가 주로 사용하는 gc 옵션 값은 아래와 같습니다.

(그러고 보니 이것도 예전에 공유드렸던 것 같습니다.)

-server

-XX:+AggressiveOpts

-XX:UseCompressedOops

-XX:MaxDirectMemorySize

-XX:+UseParNewGC

-XX:+UseConcMarkSweepG

-XX:+CMSParallelRemarkEnabled

-XX:CMSInitiatingOccupancyFraction=75

-XX:+UseCMSInitiatingOccupancyOnly

-XX:+UseG1GC


JDK 7 부터는 default G1 gc를 사용하는 것으로 알고 있습니다.

※ http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html


아시겠지만, 1.2.0 이상 부터는 무조건 JDK 7 버전을 사용해야 합니다.


gc 튜닝은 단순 JVM 설정만으로 다 해결 되는 문제는 아닙니다.

client application에서도 문제가 발생 되지 않도록 구현을 해야 하는 것도 중요합니다.

단순 예를 들면, elasticsearch node 에 설정한 memory 보다 큰 사이즈의 데이터를 요청해서 분석하는 경우 이건 그냥  OOM 갑니다.

더 심각하게는 node 가 죽을 수도 있구요.


아래 링크들은 gc 관련 링크 입니다. (예전에 찾아 봤던 링크들 입니다.)

https://gist.github.com/mrflip/5366376

http://jprante.github.io/2012/11/28/Elasticsearch-Java-Virtual-Machine-settings-explained.html

https://www.found.no/foundation/elasticsearch-in-production/

http://helloworld.naver.com/helloworld/1329

http://eediom.com/logpresso-cli-araqne-core/

http://dimdim.tistory.com/entry/Java-GC-%ED%83%80%EC%9E%85-%EB%B0%8F-%EC%84%A4%EC%A0%95-%EC%A0%95%EB%B3%B4-%EC%A0%95%EB%A6%AC

http://wiki.ex-em.com/index.php/JVM_Options

저작자 표시 비영리 변경 금지
신고
Trackback 0 : Comment 0

JVM Memory 튜닝.

ITWeb/서버관리 2012.06.13 18:11

tomcat 실행 시 JVM 메모리 튜닝을 하게 됩니다.

서비스 특성과 서버 사양에 따라 다르겠지만.. 

VM 에서 설정하려고 구성한 값이라 그냥 기본값으로 사용을 하고자 작성해봅니다.

VM 장비 4G 램 사용.

[실서비스용]

JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -XX:-UseAdaptiveSizePolicy"


[개발서비스용]

JAVA_OPTS="-server -Xms512m -Xmx512m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:+DisableExplicitGC -XX:-UseAdaptiveSizePolicy"

여기서 실서비스용에 

-XX:PermSize=256m -XX:MaxPermSize=256m 
는 128 로 낮춰도 될 듯 합니다.

신고
tags : JAVA_OPT, JVM, memory
Trackback 0 : Comment 0