當前位置:首頁 » 編程語言 » elasticsearchsql優化
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

elasticsearchsql優化

發布時間: 2023-04-15 18:21:42

❶ elasticsearch 使用優化

1、jvm內存最好為系統的一半,型搭困另一半交給luence使用

2、增加reflush刷新間隔(10s,減少段合並帶來的性能影響)

3、增大集群間互相發現、心跳的時間間隔(防止腦裂和誤操作導致的不可用)

4、每個分片的存儲量盡量和jvm內存分配的大小一致(保證搜索的數據都在內存中,對搜索延遲至關重要)

5、關閉枝高不必要的索引(只要索引開著,就會分配內存給這個索引)

6、提前建好template,設置好mapping(減少es在創建索引時的消耗,如果多了一個欄位,es也會自動按照第一次提交的數據格式設置mapping)

7、可以嘗試使用G1GC垃圾回收器(jvm內存大於8G時,G1GC的處理效率要高很多,只在client機器上使用過,未在data節點上使用過)

8、搜索條件盡可能的詳卜念細(越詳細,搜索的耗時越小)

### 配置文件:

#### elasticsearch.yml

```

cluster.name: {{ cluster_name }}

node.name: {{ ansible_nodename }}

node.master: {{ node_master }}

node.data: {{ node_data }}

path.data: /data/elasticsearch/

path.logs: /data0/log-data/elasticsearch/

network.host: {{ inventory_hostname }}

network.bind_host: {{ inventory_hostname }}

network.publish_host: {{ inventory_hostname }}

transport.tcp.port: 9300

http.port: 9200

discovery.zen.fd.ping_timeout: 120s

discovery.zen.fd.ping_interval: 30s

discovery.zen.ping.unicast.hosts: [{{ hosts }}]

discovery.zen.minimum_master_nodes: {{ min_master_nodes }}

http.cors.allow-origin: "/.*/"

http.cors.enabled: true

node.ingest: {{ node_ingest }}

```

#### jvm.option

```

-Xms{{ es_heap }}m

-Xmx{{ es_heap }}m

-XX:+UseConcMarkSweepGC

-XX:=75

-XX:+UseCMSInitiatingOccupancyOnly

-XX:+AlwaysPreTouch

-server

-Xss1m

-Djava.awt.headless=true

-Dfile.encoding=UTF-8

-Djna.nosys=true

-Djdk.io.permissionsUseCanonicalPath=true

-Dio.netty.noUnsafe=true

-Dio.netty.noKeySetOptimization=true

-Dio.netty.recycler.maxCapacityPerThread=0

-Dlog4j.shutdownHookEnabled=false

-Dlog4j2.disable.jmx=true

-Dlog4j.skipJansi=true

-XX:+HeapDumpOnOutOfMemoryError

```