개발/Elasticsearch 2

Elasticsearch IntelliJ 에서 디버깅 하는방법

Elasticsearch는 오픈소스 검색엔진입니다. Elasticsearch를 개발하거나 운영하다 보면 내부에서 어떻게 호출되고 있는지가 궁금 해질 때가 있습니다. 이 때 Elasticsearch를 IntlliJ에서 디버깅 하는 방법에 대해 설명하겠습니다. 환경은 다음과 같습니다. Mac OS IntelliJ 2022.2.3 1. Elasticsearch를 IntelliJ에서 열기 먼저 Github에서 Elasticsearch source를 clone 받습니다. git clone https://github.com/elastic/elasticsearch.git 그 다음 받은 Elasticsearch 소스를 IntelliJ에서 Open 해야하는데요, 그 전에 몇가지 체크 사항이 있습니다. IntelliJ I..

Elasticsearch OS 환경 설정

Elasticsearch 시스템 설정의 이유 Elasitcsearch나 Solr같은 검색엔진의 경우 OS 리소스를 적극적으로 활용하면서 성능을 최대로 올립니다. Elasticsearch의 코어인 Lucene은 색인 할 때 데이터 저장을 세그먼트 파일 단위로 하게 됩니다. 색인 데이터가 많아지게 되면 동시에 Read 해야하는 파일의 갯수가 매우 많아집니다. 이렇게 되면 디스크에서 File IO에 비용이 많이 들게 됩니다. 이를 피하기 위해서 OS 레벨에서 mmap을 사용하여 파일을 메모리에 로드해서 성능을 끌어 올립니다. mmap은 OS 파일의 물리적 메모리에 매핑하고 파일 접근을 메모리 접근으로 대체하는 기술입니다. 이를 통해 디스크에서 데이터를 읽어들이는 비용을 피하고, 메모리에서 데이터를 접근 할 ..