Elasticsearch性能优化
常用命令
GET _search
{
"query": {
"match_all": {}
}
}
GET _cat/indices
GET _cat/shards
PUT /server-2023.02.09/_settings
{
"number_of_replicas": 0
}
PUT /_cluster/settings
{
"persistent": {
"cluster.routing.allocation.disk.watermark.low": "90%",
"cluster.routing.allocation.disk.watermark.high": "96%",
"cluster.info.update.interval": "1m",
"cluster.routing.allocation.disk.threshold_enabled": true
}
}
PUT _cluster/settings
{
"persistent" : {
"cluster.routing.allocation.exclude._ip" : "10.5.234.66"
},
"transient" :{
"cluster.routing.allocation.exclude._ip" : "10.5.234.66"
}
}
PUT _cluster/settings
{
"persistent" : {
"cluster.routing.allocation.exclude._ip" : null
},
"transient" :{
"cluster.routing.allocation.exclude._ip" : null
}
}
GET _cluster/allocation/explain
GET _cluster/health
GET _cluster/settings
POST /_cluster/reroute?retry_failed=true
PUT _cluster/settings
{
"persistent" : {
"cluster.routing.rebalance.enable" : "all"
}
}
PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.node_initial_primaries_recoveries": 20
}
}
PUT /_all/_settings
{
"index.blocks.read_only_allow_delete": null
}
PUT /device-api-backend-2022.10.12/_settings
{
"index.blocks.read_only_allow_delete": null
}
PUT /_cluster/settings
{
"persistent": {
"indices.recovery.concurrent_streams": 8
}
}
GET /_cluster/settings
GET /_cat/nodes?v
PUT /_cluster/settings
{
"persistent": {
"cluster.routing.allocation.cluster_concurrent_rebalance": 6
}
}
PUT /_cluster/settings
{
"transient" : {
"cluster.routing.allocation.enable" : "none"
}
}
PUT /_cluster/settings
{
"persistent": {
"cluster.routing.allocation.node_concurrent_recoveries": 10
}
}
PUT /_cluster/settings
{
"persistent": {
"cluster.routing.allocation.cluster_concurrent_rebalance": 6
}
}
PUT /_cluster/settings
{
"transient": {
"indices.recovery.max_bytes_per_sec": "300mb"
}
}
GET _cluster/allocation/explain
PUT /_cluster/settings
{
"transient": {
"cluster.routing.allocation.node_initial_primaries_recoveries": 50
}
}
总结
luster.routing.rebalance.enable 参数是用于控制 Elasticsearch 集群中数据分片再平衡(rebalance)的设置。与 cluster.routing.allocation.enable 相比,它关注的是已经分配的分片的重新分布,而不是新的或新增的分片分配。
以下是 cluster.routing.rebalance.enable 参数的作用以及与 cluster.routing.allocation.enable 的区别:
cluster.routing.rebalance.enable 参数:
当设置为默认值 all 时,允许 Elasticsearch 自动触发数据分片再平衡。
当设置为 none 时,禁止 Elasticsearch 自动触发数据分片再平衡。
cluster.routing.allocation.enable 参数:
控制新的分片(主分片和复制分片)的自动分配。
all:允许自动分配所有新的分片。
primaries:只允许自动分配主分片,不包括复制分片。
none:禁止所有新的分片的自动分配。
区别:
cluster.routing.rebalance.enable 主要控制现有分片的再平衡,即已经分配到节点上的分片的重新分布。这在集群中节点发生故障或节点添加或移除时可能发生。设置为 all 时,Elasticsearch 将尝试自动重新平衡分片以确保数据均匀分布。设置为 none 时,将禁止自动再平衡,分片将保持在当前节点上。
cluster.routing.allocation.enable 主要用于控制新的分片的分配。这适用于在索引创建时或索引分配时。不同的设置允许或禁止新的分片自动分配到可用节点上。
总之,cluster.routing.rebalance.enable 控制的是现有分片的再平衡,而 cluster.routing.allocation.enable 控制的是新的分片的分配。两者一起使用可以更好地管理 Elasticsearch 集群中的数据分布和平衡。
如对您有帮助,支持下呗!
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2020-08-26 调试 Ingress Nginx