The node.bandwidth.recovery.factor.read
setting in Elasticsearch controls the proportion of a node's total bandwidth that can be used for reading operations during the recovery process. This setting helps manage network usage and balance recovery speed with other cluster operations.
- Default value: 0.4 (40% of the node's bandwidth)
- Possible values: 0.0 to 1.0 (representing 0% to 100% of the node's bandwidth)
- Recommendation: The default value is suitable for most scenarios, but it can be adjusted based on specific cluster needs and network conditions.
This setting was introduced in Elasticsearch 7.13.0 as part of the adaptive replica selection feature for recovery operations.
Example
To change the node.bandwidth.recovery.factor.read
setting using the cluster settings API:
PUT /_cluster/settings
{
"persistent": {
"node.bandwidth.recovery.factor.read": 0.5
}
}
In this example, we're increasing the read bandwidth factor to 50%. This might be beneficial in scenarios where faster recovery is needed and the network can handle the increased load. However, be cautious as this may impact other cluster operations that require network resources.
Common Issues and Misuses
- Setting the value too high can lead to network congestion and affect other cluster operations.
- Setting the value too low may significantly slow down recovery processes, especially in large clusters or those with frequent node restarts.
Do's and Don'ts
Do's:
- Monitor cluster performance and recovery times when adjusting this setting.
- Consider the overall network capacity and other ongoing operations when changing this value.
- Use in conjunction with other bandwidth-related settings for a balanced approach.
Don'ts:
- Don't set this value to 1.0 (100%) as it may severely impact other cluster operations.
- Avoid frequent changes to this setting without monitoring the effects.
Frequently Asked Questions
Q: How does node.bandwidth.recovery.factor.read affect cluster performance?
A: This setting influences the speed of recovery operations by controlling how much of a node's bandwidth can be used for reading during recovery. Higher values can speed up recovery but may impact other operations that require network resources.
Q: Can changing node.bandwidth.recovery.factor.read improve recovery times?
A: Yes, increasing this value can potentially improve recovery times by allowing more bandwidth for read operations during recovery. However, this should be balanced against the needs of other cluster operations.
Q: Is it safe to change node.bandwidth.recovery.factor.read in a production environment?
A: While it's generally safe to adjust this setting, it's recommended to test changes in a non-production environment first and monitor the effects closely when applied to production.
Q: How does node.bandwidth.recovery.factor.read interact with other bandwidth-related settings?
A: This setting works in conjunction with other bandwidth settings like node.bandwidth.recovery.factor.write
to manage overall network usage during recovery operations. It's important to consider all related settings when making adjustments.
Q: Should node.bandwidth.recovery.factor.read be adjusted differently for different node types?
A: In most cases, this setting should be consistent across all nodes. However, in clusters with heterogeneous hardware or network conditions, you might consider adjusting it differently for specific node types, always keeping in mind the overall cluster balance and performance.