'gc'에 해당되는 글 2건

  1. 2017.12.22 [GC] 관련 링크 모음
  2. 2014.10.02 [ElasticSearch] GC 튜닝 참고.

[GC] 관련 링크 모음

ITWeb/개발일반 2017. 12. 22. 12:44
:

[ElasticSearch] GC 튜닝 참고.

Elastic/Elasticsearch 2014. 10. 2. 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

: