ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Elasticsearch 性能调优指南——推荐实战 DSL

2021-09-26 18:30:06  阅读:183  来源: 互联网

标签:index search slowlog PUT DSL 调优 Elasticsearch threshold my


Elasticsearch 性能调优指南——推荐实战 DSL

1、未分配分片查看

GET _cat/shards?v&h=index,shard,prirep,state,unassigned.reason&s=state:asc

2、动态调整副本数

PUT my-index-2021.05.30-000002/_settings
{"number_of_replicas": 0}

ps:主分片不可以修改(除非shrink),但:副本可以动态调整大小。

3、重新打开分片分配策略

PUT /_cluster/settings
{
  "transient": {
    "cluster.routing.allocation.enable": "all"
  }
}

4、手动移动未分配的分片

POST /_cluster/reroute
{
  "commands": [
    {
      "move": {
        "index": "test",
        "shard": 0,
        "from_node": "node1",
        "to_node": "node2"
      }
    },
    {
      "allocate_replica": {
        "index": "test",
        "shard": 1,
        "node": "node3"
      }
    }
  ]
}

5、查看磁盘使用率

GET /_cat/allocation?v

使用率大于等于85%,知道已经达到警戒水位线了,要预警。

6、查看各个节点的版本号

GET /_cat/nodes?v&h=host,name,version

集群多节点版本不一致,可能会引发各种未知异常。

7、检索性能调优实战
7.1 慢日志设置

PUT /my-index-000001/_settings
{
  "index.search.slowlog.threshold.query.warn": "10s",
  "index.search.slowlog.threshold.query.info": "5s",
  "index.search.slowlog.threshold.query.debug": "2s",
  "index.search.slowlog.threshold.query.trace": "500ms",
  "index.search.slowlog.threshold.fetch.warn": "1s",
  "index.search.slowlog.threshold.fetch.info": "800ms",
  "index.search.slowlog.threshold.fetch.debug": "500ms",
  "index.search.slowlog.threshold.fetch.trace": "200ms",
  "index.search.slowlog.level": "info"
}

7.2 构建Mapping 设置路由

PUT my-index-000002
{
  "mappings": {
    "_routing": {
      "required": true 
    }
  }
}

7.3 段合并

POST /my-index-000001/_forcemerge

8、写入优化篇
8.1 批量写入

POST _bulk
{ "index" : { "_index" : "test", "_id" : "1" } }
{ "field1" : "value1" }
{ "delete" : { "_index" : "test", "_id" : "2" } }
{ "create" : { "_index" : "test", "_id" : "3" } }
{ "field1" : "value3" }
{ "update" : {"_id" : "1", "_index" : "test"} }
{ "doc" : {"field2" : "value2"} }

8.2 增加刷新频率

PUT /my-index-000001/_settings
{
  "index" : {
    "refresh_interval" : "30s"
  }
}

8.3 副本设置为0,提升写入

PUT my-index-000001/_settings
{
  "number_of_replicas": 0
}

8.4 translog 异步刷盘

PUT my-index-2021.06.03/_settings
{
  "index": {
    "translog": {
      "durability": "async"
    }
  }
}

9、堆内存调优实战
在 jvm.option 配置文件中(不支持动态调整,需要重启后生效)

ES_HEAP_SIZE=DESIRED_SIZE (e.g. "3g")

10、磁盘不足解决方案
磁盘的三个警戒水位线需要再一次强调。如果 Elasticsearch 集群节点的磁盘空间不足,则会影响集群性能。

一旦可用存储空间低于特定阈值限制,它将开始阻止写入操作,进而影响数据进入集群。那么,如何扩展呢?
第一:横向扩展,添加数据节点(前提分片分配相对合理)。

第二:纵向扩展,升级机器,加磁盘(可能需要调整data.path)。

第三:迁移数据,历史久远不用数据可以考虑迁移到别的集群,或者归档到别的机器。

小结
性能调优非一朝一夕之功,推荐阅读官方文档的:“How to ” 部分。该部分针对写入、检索等性能优化,更加细致、全面有针对性。
在这里插入图片描述
本文是从命令行排查问题角度出发做的小结,希望对大家排查线上问题有所帮助。
一起加油吧!我是Remi酱,点下关注吧!

文章来源:https://www.tuicool.com/articles/VzeEfqQ

标签:index,search,slowlog,PUT,DSL,调优,Elasticsearch,threshold,my
来源: https://blog.csdn.net/m0_53462955/article/details/120494447

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有