Versions (relevant - OpenSearch/Dashboard/Server OS/Browser):
v 1.3.2
3 master nodes( AWS t3a.medium), 3 data nodes (AWS r6i.2xlarge) , running on EC2 instances in AWS.
Standard setup with beats sending docs to redis, and logstash ingesting docs into opensearch
Ingesting approx 300,000 records a minute
Describe the issue:
When I do a snapshot restore (i.e. restoring 3 indices (approx 140Gb in size, 53m docs) while the snapshot is restoring I notice that the cluster slows down and a back log of docs build up in redis.
Generally each index consists of 3 shards.
Configuration:
Below is my settings, everything else is default.
{
"persistent" : {
"cluster" : {
"routing" : {
"allocation" : {
"enable" : "all"
}
},
"max_shards_per_node" : "2000"
},
"plugins" : {
"index_state_management" : {
"metadata_migration" : {
"status" : "1"
},
"template_migration" : {
"control" : "-1"
}
}
}
},
"transient" : {
"cluster" : {
"routing" : {
"rebalance" : {
"enable" : "all"
},
"allocation" : {
"node_concurrent_recoveries" : "10",
"enable" : "all",
"node_initial_primaries_recoveries" : "10"
}
}
},
"indices" : {
"recovery" : {
"max_bytes_per_sec" : "100mb"
}
}
}
}
I am aware that I have replaced the default value of max_bytes_per_sec from 40mb to 100mb, but I can’t imagine that is the main reason (I will try some restores with the default value)
Relevant Logs or Screenshots:
Looking at the infra, I do see some interesting things.
I can see writes going to the EBS disks (FYI we have one 2TB EBS GP3 disk attached to each data node) at approx 100Mb which lines up with the setting above. The graph below shows this. a restore done yesterday and one this morning.
The CPU on the data nodes are ok:
The CPU on the master nodes are ok:
The network traffic coming into the data nodes was just aove 6GB a minute:
So I am not seeing any resource issues, my cluster looks ok
NB - With additional testing, even a 1 index restore approx 40Gb size 8.5m docs causes the cluster to slow down and causes redis to start to fill up.
I changed the max_bytes_per_sec back to 40mb and tried a 40GB index restore, and this one seemed ok. I tried to restore 7 indices of a similar size, during this time it appears the cluster was relatively up to date ( I think it feel behind max 2 minutes, but caught up relatively quickly)
Does the changing of max_bytes_per_sec really affect the cluster that much? Anybody else have similar experiences.