일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- aggregation
- docker
- springboot
- ELASTIC
- 파이썬
- TensorFlow
- Python
- license delete
- 900gle
- aggs
- analyzer test
- flask
- API
- Java
- Test
- sort
- Elasticsearch
- Mac
- zip 암호화
- MySQL
- token filter test
- licence delete curl
- License
- 차트
- zip 파일 암호화
- high level client
- query
- matplotlib
- plugin
- Kafka
- Today
- Total
목록ElasticStack/Elasticsearch (87)
개발잡부
Elasticsearch의 top_hits 집계는 각 버킷에 대해 상위 N개의 문서를 검색할 수 있는 메트릭 집계 유형입니다. 예를 들어 terms, date_histogram 같은 버킷 집계와 함께 사용하여, 버킷별로 샘플 문서를 가져오고자 할 때 유용합니다. 이때 avg, sum과 같은 메트릭 값을 계산하는 대신, 실제 문서를 직접 조회하는 방식입니다.예시: 카테고리별 상위 인기 게시글예를 들어, 블로그 게시글을 저장한 인덱스가 있고, 각 문서에는 title, category, views 필드가 있다고 가정합시다. 카테고리별로 조회수가 가장 높은 게시글 3개를 검색하고자 할 때 아래와 같은 쿼리를 사용할 수 있습니다. GET /your_index/_search{ "size": 0, "aggs": ..
AS-IS: 6서버 1노드 1샤드 (primary 3, replica 1) 각 데이터 노드별로 1개의 샤드 구성 - 운영과 동일한 구조TO-BE: 6서버 1노드 1샤드 (primary 3, replica 3) 각 데이터 노드별로 2개의 샤드 구성 데이터 구성As-is: prd data copy index (07월10일 PRD데이터)To-be: prd data copy index (07월10일 PRD데이터)QA api 호출100건/초데이터 추출 기준: 2024-03-01 09:00:00 ~ 2024-03-01 09:30:00 까지 5분간격 으로 10,000 개씩 7만개 추출 (중복제거를 하지 않은 request 추출)sleep 0.3초최초 1회 es cache 초기화 후 실행7만개 키워드 1회 실행 후 ..
샤드 구성을 변경해서 data node 재부팅샤드 맞춤 _cluster/reroute테스트19:00 이후 Auto test 실행 Shard 구성 AS-IS: 6서버 1노드 1샤드 (primary 3, replica 1) 각 데이터 노드별로 1개의 샤드 구성 - 운영과 동일한 구조TO-BE: 6서버 1노드 1샤드 (primary 3, replica 3) 각 데이터 노드별로 2개의 샤드 구성 TEST2024-08-07 19:00:00 이후 테스트 결과 낮시간대 테스트 cpu 사용률 응답시간
뭐 대충 이런느낌 이랄까트래픽이 왔을때 8core 16Gb 로 띄운 X 6대의 data node prd data copy index 0710 (운영데이터) alias 변경 local api (Local to ES)200건/초중복제거키워드 (10,000 x 2)sleep 0.3초최초 1회 es cache 초기화 후 실행이렇게 테스트 하면 저런 결과가 나온다. 샤드 구성도 맞춰놓고 샤드 구성 변경 reroute api POST _cluster/reroute{ "commands": [ { "move": { "index": "prd-ds-item-20240710", "shard": 1, "from_node": "node-qa-totalsearch-data..
이게 나를 요즘 .. 데이터 노드의 구성은 1서버 1노드 1샤드 primary 3 , replica 1 어느부분이 문제를 일으키는지는 알고 있다. 제거 하고 다시 실행, 하지만 이 로직을 뺄수는 없다.. 문제를 일으키는 로직은 검색결과에서 집계를 통해 필터를 만들어 내는 로직 이 로직을 파보니 query_cache 가 특정샤드에서만 상대적으로 적게 생성이 된다. 집계를 통한 필터 생성이여서 request cache 가 먹혀야 하는 구조였는데 아무튼 마지막 구간에서 엄청나게 안정적인 흐름을 보이는.. 그럼 다시 널뛰는 cpu 로 만들어 놓고 해결방법try 1cpu 는 트래픽이 적을땐 저렇게 하나만 튀는 현상이 없었다. redis cache 를 사용해서 트레픽을 줄여본다. 캐시전략 ..
검색 과정 Elasticsearch 의 검색은 1 Query, 1 Shard, 1 Thread를 바탕으로 이루어짐3개의 노드를 가지고 있다.노드는 샤드를 1개씩 가지고 있다 각각의 노드는 4개의 코어를 가지고 있다4개의 쿼리가 인입된다. 이 경우 검색 쓰레드 풀에 4개의 검색 Thread를 가지고 있게 된다. 단일 쿼리의 유입인 경우 검색 Thread 풀에서 1개의 검색 Thread를 사용하게됨 나머지 3개는 노는 상황언뜻보면 3개가 놀고 있으니 리소스의 낭비같지만 이런경우 4개의 쿼리가 인입될때 Thread를 하나씩 사용하게되어 거의 동시에 종료된다 그럼 아래의 경우를 보자 3개의 노드를 가지고 있다.노드는 샤드를 4개씩 가지고 있다 각각의 노드는 4개의 코어를 가지고 있다4개의 쿼리가 인입된다..
회원번호는 DB 상에 bigint 로 색이되어 있다. 2억번대 회원 번호는 비회원이라 색인할 필요가 없어서 제거해서 배포한 상황그러다 보니 약 300만건의 데이터 차이가 났는데 원인을 몰라서 고민하던중에 확인해봄 일단 조회쿼리 GET hyper-order-item_2024.05.07.13.37/_search{ "track_total_hits": true, "query": { "bool": { "filter": [ { "regexp": { "userNo": "[0-9]{9,}" } }, { "prefix": { "userNo": "2" } ..
Elasticsearch의 hot_threads API는 클러스터 내에서 CPU가 높게 사용되는 스레드 정보를 제공하는 엔드포인트입니다. 이를 통해 어떤 작업이 CPU를 많이 사용하고 있는지를 식별하고 성능 이슈를 해결할 수 있음 Hot Threads API 사용 방법: cURL을 사용한 기본 사용법 curl -X GET "localhost:9200/_nodes/hot_threads?pretty" 위 명령은 로컬 호스트의 9200번 포트에서 실행 중인 Elasticsearch에 연결하고, 각 노드의 hot threads 정보를 출력. 위 명령은 각 노드에서 상위 5개의 hot threads만 출력합니다. threads 파라미터를 사용하여 출력할 스레드의 수를 조절할 수 있음 curl -X GET "loc..
샤드의 정보를 확인해보고 싶었다. _cat 을 사용 GET /_cat/shards/hyper-item 결과 cat 은 다양한 정보를 제공한다. /_cat/shards /_cat/shards/{index} /_cat/master /_cat/nodes /_cat/tasks /_cat/indices /_cat/indices/{index} /_cat/segments /_cat/segments/{index} /_cat/count /_cat/count/{index} /_cat/recovery /_cat/recovery/{index} /_cat/health /_cat/pending_tasks /_cat/aliases /_cat/aliases/{alias} /_cat/thread_pool /_cat/thread_poo..
아마도 6 버전인듯한데.. http 통신을 하는 플러그인을 제한 해서 head 를 설치를 못하고 chrome 브라우저 앱으로 사용했던 것 같다. 일단 head 란 뭐냐.. elasticsearch 필수 플러그인으로 활약하던 과거의 영광이 있던 플러그인이지만. .. 지금은 개발자들이 잘 안쓰는듯.. 좀 허접하게 생기긴했으나. 직관적으로 노드, 샤드 및 클러스터 상태를 확인할 수 있어서 난 아직도 사용 중 설치하러 가보자. 구글검색페이지 우측 상단에 점 9개짜리 버튼을 눌러보면 크롬 웹스토어 라는것이 있다. 접속하면 이런 화면이 나오는데 우측 상단 검색창에 elasticsearch 라고 검색해보자 검색결과 별점은 낮지만 최상단에 있는 Multi Elasticsearch Head 가 있다. Multi ? 내가..