【实战】 elasticsearch 写入速度提升的案例分享
# 每2w条执行一次bulk插入
bulkActions: 20000
# 数据量达到15M后执行bulk插入
bulkSizeMb: 15
# 无论数据量多少,间隔20s执行一次bulk
flushInterval: 20
# 允许并发的bulk请求数
concurrentRequests: 10
call_list = es.indices.stats(index=index)
total = call_list['indices'][index]['total']['indexing']['index_total']。
curl -XGET -uname:pwd
'http://esip:port/_cat/count/index-name?v&format=json&pretty'
总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
cat /proc/cpuinfo| grep "cpu cores"| uniq
cat /proc/cpuinfo| grep "processor"| wc -l
curl -u username:pwd ip:port/_cat/tasks/?v | more
GET /_nodes/hot_threads
path.data: /data01/esdata,/data02/esdata
,/data03/esdata,/data04/esdata,/data05/esdata
类型 | 配置 | 作用 |
主节点 | node.master: true node.data: false node.ingest: false | 负责集群级别的维护操作,集群状态、创建和删除索引、节点上分片的分配操作等等。 |
数据节点 | node.master: false node.data: true node.ingest: false | 保存数据的节点。处理和数据相关的请求操作, 承载写入和查询的重要节点 |
Ingest 节点 | node.master: false node.data: false node.ingest: true | 专注于数据的预处理 |
协调节点 | node.master: false node.data: false node.ingest: false | 处理路由请求;处理搜索聚合节点;分发批里索引请求。 |
{
"order": 0,
"index_patterns": [
"topicA*"
],
"settings": {
"index": {
"refresh_interval": "40s",
"number_of_shards": "30",
"translog": {
"flush_threshold_size": "1024mb",
"sync_interval": "120s",
"durability": "async"
},
"number_of_replicas": "0",
"merge": {
"scheduler": {
"max_thread_count": "1"
}
}
}
},
"mappings": {
},
"aliases": {}
}
curl -X POST "localhost:9200/_cluster/reroute?pretty" -H 'Content-Type: application/json' -d'
{
"commands" : [
{
"move" : {
"index" : "test", "shard" : 0,
"from_node" : "node1", "to_node" : "node2"
}
}
]
}
"_routing": {
"required": true
}