Upgrade the configuration of an Alibaba Cloud Elasticsearch (ES) cluster to restore service stability when CPU, memory, disk, or other resources remain highly utilized, or when query and write performance no longer meets business requirements. You can add nodes, upgrade node specifications, expand disk space, or add node types.
Before you upgrade
An upgrade can cause service latency, configuration conflicts, and billing changes. Review the following information before you proceed.
Service stability — The following table describes how an upgrade affects service under different cluster load profiles, and the measures to take for each profile.
| Cluster | Service status | Response measures |
| Normal load with replicas. Normal load: CPU ≤ 60%, heap memory ≤ 50%, and load lower than the number of cores. | Service continues. Performance may decrease slightly. | No additional action is required. |
| High load without replicas. High load: writes or queries with high concurrency during the upgrade, CPU > 60%, and heap memory > 50%. | Occasional access timeouts may occur. | Enable a retry mechanism on the client, and increase the number of index replicas before the upgrade. |
| High load with an abnormal status. | Occasional access timeouts or fluctuations may occur. | Restore cluster health before you make changes. |
Maintenance window — Perform the upgrade during off-peak business hours.
Capacity planning
Evaluate the required cluster capacity before you upgrade.
Configuration constraints
Upgrading the cluster configuration does not support Elasticsearch version upgrades.
Each upgrade operation supports changing only one type of node.
Cost impact
After you submit an upgrade order, the system bills you according to the updated configuration. For billing rules, see Pay-as-you-go and Subscription.
Recommended specifications for common scenarios
Select a node specification family based on the current performance bottleneck of your cluster:
| Scenario type | Specification family | Example specification | Applicable scenarios |
| CPU/write-intensive | 1:2 compute-optimized (CPU:memory = 1:2) | 8 vCPU 16 GiB | Scenarios with consistently high CPU utilization or high write throughput. Increase the core count vertically within the 1:2 specification family, for example, to 16 vCPU 32 GiB, to directly increase CPU resources. |
| Balanced | 1:4 general-purpose (CPU:memory = 1:4) | 8 vCPU 32 GiB | Scenarios with moderate CPU utilization that also require more JVM heap memory or off-heap memory (page cache). |
| Memory-intensive | 1:8 memory-optimized (CPU:memory = 1:8) | 8 vCPU 64 GiB | Scenarios involving deep aggregation analysis, large index caches, or persistently high JVM heap memory utilization. |
Upgrading memory can indirectly improve write speed because a larger JVM heap reduces GC pauses and more off-heap memory reduces disk I/O. The actual effect varies by workload and data volume. Validate it in a test environment before you make a decision. For a complete evaluation of cluster capacity requirements, see Evaluate the required cluster capacity.
Do not use nodes of 2 vCPU 4 GiB or lower in a production environment. For production environments, use nodes of at least 4 vCPU 8 GiB. For the causes of CPU spikes and node disconnections on small-specification nodes, and for the solutions, see the small-specification node question in the FAQ section of this topic.
Pre-upgrade checks
An upgrade that skips these checks can cause cluster crashes, data loss, or service unavailability. Verify each item before you proceed.
Cluster health — Run
GET _cluster/healthand confirm that the cluster status is GREEN. If the cluster is unhealthy, resolve the issue as described in Cluster change error - Unhealthy cluster status.Load safety — Run
GET _cat/nodes?vand confirm that CPU usage is ≤ 60%. If CPU usage exceeds 60%, apply the high-load response measures in the service stability table before you upgrade.Index readiness
Run
GET /_cat/indices?vto check whether any index is in the CLOSE state. If an index is in the CLOSE state, runPOST /<index_name>/_opento temporarily open it. Otherwise, the upgrade might fail for the following reasons:The cluster cannot reach GREEN when an index is in the CLOSE state. ES requires the cluster to be GREEN before it performs certain sensitive changes, such as shard allocation rule adjustments.
The cluster reallocates shards during an upgrade:
Shards of closed indices cannot participate in reallocation.
Operations that depend on GREEN status fail.
The cluster cannot reach GREEN and can reach only YELLOW at best.
If a CLOSE index cannot be opened or deleted for business reasons, upgrade validation might still display the message "The cluster status is unhealthy. The current operation cannot be performed." CLOSE indices can trigger this message even when
GET _cluster/healthreports that the cluster is healthy. This is expected validation behavior. In this case, disable Intelligent Update on the upgrade page, set the update method to In-place Update, and then continue the upgrade. Because In-place Update rolls through nodes without copying data, keeps node IP addresses unchanged, and takes relatively less time, it suits a cluster that contains many CLOSE indices that cannot be handled.This method applies only to V2 architecture instances, on which you can disable Intelligent Update. V3 architecture instances (the new cloud-native control plane) do not support disabling Intelligent Update, so node specification and disk type upgrades on those instances always use a blue-green update. Carefully assess the impact before you choose In-place Update when cluster utilization is high, for example, CPU > 60%.
Run
GET _cat/indices?vto check whether each index has at least 1 replica.For multi-zone instances, make sure that the replica count of any index in the cluster is less than the number of zones during the upgrade. (Recommended) Set the replica count to 1 and increase it manually after the upgrade is complete.
Shard balance — Run
GET _cat/shards?vto check whether shards are unbalanced. Confirming that shard distribution is balanced before an upgrade is critical to preventing performance degradation or cluster crashes during or after the upgrade.prirep: Identifies whether a shard is a primary shard (p) or a replica shard (r).
These issues prevent new nodes from receiving shards and cause the cluster to remain YELLOW or RED after the upgrade. If these issues occur, resolve them as described in Solutions for uneven cluster load.state: Check whether a replica shard isUNASSIGNED, and whether a migration remains stuck in theRELOCATINGstate for an extended period.
Method 1: Upgrade through the console
Upgrade the cluster configuration in the Elasticsearch console. The rules and options that apply to each configuration item are described after the procedure.
Log on to the Elasticsearch console and go to the Instance List page.
Click Upgrade Configuration.
Alternative entry point: On the Basic Information page, click Configuration UpdateUpgrade.
On the Change Specifications page, adjust configuration item values based on your business requirements.
The configurable items vary based on cluster type and version. Refer to the options displayed on the upgrade page.
Review the Terms of Service and Service-Level Agreement (SLA) by clicking Terms of Service and Service Level Agreement. If you agree, click Buy Now. The payer is charged based on the payment method.
After you click Buy Now, the upgrade starts. To track its progress and verify the result, see the Monitor progress and verify the upgrade section of this topic.
Changes in the number of zones — If the required specification is out of stock in a zone, migrate the nodes in that zone before you upgrade.
Expansion: You can expand from 1 zone to 2 or 3 zones.
Reduction: Reducing a multi-zone instance to a single-zone instance is not supported. If you need to do this, purchase a new instance with the required zone configuration, migrate data to it, and release the original instance after the migration is complete.
Supported node specification and node storage type upgrades, ordered from lowest to highest performance:
Previous-generation cloud disks: cloud disk (standard cloud disk), then ultra cloud disk, then standard SSD.
These disk types are no longer available for purchase in some regions and zones. (Recommended) Choose ESSD cloud disks instead.
ESSD cloud disks: ESSD (Enterprise SSD) cloud disks use 25 GE networking and RDMA technologies to provide up to 1 million random read and write operations per disk and low-latency performance on a single connection.
Local disks.
A local disk is a local disk device on the physical host of an ECS instance. It provides local storage access for ECS instances and is suitable for workloads with extremely high requirements for storage I/O performance and cost-effective mass storage.
Upgrade standard SSDs to ESSD cloud disks
If your cluster has high disk IOUtil utilization that frequently reaches its limit, upgrade the disk type from standard SSDs to ESSD cloud disks to improve I/O performance.
Storage upgrade constraints
ESSD PL0 limitations: When you upgrade an existing standard SSD instance to an ESSD cloud disk, PL0 is unavailable. You can select only PL1 or a higher performance level (PL). PL0 remains available when you create a new ESSD instance.
Forced Update: If a full disk causes an abnormal cluster status, first delete unnecessary indices or reduce the replica count to restore GREEN status. Otherwise, select this option on the upgrade page to force capacity expansion. For the impact of skipping the cluster health check, see the Force Change option described with the update methods below.
Local disks: Local disk capacity is physically bound to the instance node specification and cannot be adjusted independently. To upgrade local disk capacity, upgrade the overall node specification. New instances currently support only the "new-generation cloud disk" specification family. Local disks apply only to existing instances.
Automatic storage scaling: ES does not support an automatic storage scaling feature like that of the ApsaraDB RDS database service. Manually upgrade the cluster configuration when disk space is insufficient.
Notes on combined changes: If you need to upgrade specifications, change the disk type, and expand capacity at the same time, note that a disk type change supports only a blue-green update and does not support an in-place update. To avoid multiple data migrations, perform the following steps separately:
First change the instance specification and expand capacity. You can use Intelligent Update or an in-place update. After the service recovers, perform the next step.
Change the disk type separately by using a blue-green update. A blue-green update can cause brief interruptions only when it switches nodes after data synchronization is complete, and has little impact on the business.
Intelligent Update (enabled by default): The system automatically selects the optimal update method based on the configuration changes. You can disable it and specify an update method manually:
| Update method | Mechanism | Duration | Service impact and applicable scenarios |
| Blue-green Update | Add new nodes, copy data, and then switch over seamlessly. | Longer | Node IP addresses change, and cluster performance may fluctuate briefly. Suitable when you are not sensitive to the duration of the upgrade and require high cluster availability. |
| In-place Update | Update nodes in a rolling manner without copying data. | Shorter | Node IP addresses do not change, and cluster performance may fluctuate briefly. Suitable when the cluster has performance bottlenecks and you want to complete the upgrade quickly. Carefully choose an in-place update if utilization is high, for example, CPU > 60%. |
Forced Update: This option skips the cluster health check and forces a cluster restart. It can make the service unstable during the restart and can cause a prolonged service interruption, and recovery time depends on the data volume. Use it only for emergency capacity expansion when the cluster is unavailable.
Method 2: Upgrade through the API
You can also upgrade the cluster configuration by calling an API operation. For the cluster upgrade API, see the API reference document: UpdateInstance.
Monitor progress and verify the upgrade
To view progress after the upgrade starts, log on to the Elasticsearch console, choose Elasticsearch Clusters, open the Basic Information page of the instance, and click Show Details.
After the upgrade is complete, verify that the configuration has taken effect on the cluster Basic Information page:
The upgrade is successful when the instance status returns to Normal.
Verify that the number of zones matches your expectations.
Node count and storage specifications: Verify that the new nodes have joined the cluster and that the storage specifications are correct.
Shard balance: Run
GET _cat/allocation?vto check shard distribution. If shards are unbalanced, resolve the issue as described in Solutions for uneven cluster load.
Troubleshoot an upgrade that remains in the Activating status for an extended time
After the upgrade starts, the cluster status becomes Initializing. If this status lasts longer than expected, use the following methods to troubleshoot it:
Expected duration: Expanding ESSD cloud disks normally takes 30 minutes to 1 hour. If the cluster has not recovered after more than 2 hours, perform further troubleshooting.
Check shard allocation for V2 architecture clusters: Some V2 architecture clusters automatically disable shard allocation during expansion by setting
cluster.routing.allocation.enabletononeto prevent shard fluctuations during expansion. If this setting is not automatically restored after expansion is complete, the status can remain Initializing for an extended period. Run the following command in Kibana Dev Tools to re-enable shard allocation:
PUT /_cluster/settings
{
"transient" : {
"cluster.routing.allocation.enable" : "all"
}
}Accelerate migration: If data migration is slow and increases the duration, set node data transfer bandwidth to 80 in the console to accelerate data migration.
Business connection timeout information: Instance restarts during an upgrade can cause brief business connection timeouts. This is expected behavior. Configure a retry mechanism on the application side to reduce the impact.
FAQ
Upgrades and performance metrics
Q: Does upgrading always resolve performance issues in my ES cluster?
A: No. Upgrading CPU, memory, disk, and other resources is not a universal solution. Before you decide to upgrade, analyze the specific bottleneck:
CPU bottleneck: CPU utilization remains above 80% for an extended period, rather than briefly peaking.
Memory bottleneck: Long GC times, memory swapping (swap), or out-of-memory (OOM) errors occur frequently.
Disk bottleneck: Focus on actual I/O throughput instead of only the %util metric, as described below.
Network bottleneck: Network bandwidth remains saturated and latency increases significantly.
Confirm the actual bottleneck before you upgrade to avoid unnecessary resource waste. In some cases, index optimization, query optimization, or configuration adjustments are more effective than upgrading resources alone.
Q: Why does my %util metric often reach 100% when the system appears to be operating normally?
A: The %util metric in iostat represents the percentage of time that a device has I/O activity, regardless of the volume of I/O requests. Modern storage devices can process multiple I/O requests in parallel, so a %util value of 100% does not mean that a device is saturated:
For example, a disk takes 0.1 seconds to process one I/O request and supports simultaneous processing of 10 I/O requests.
When 10 I/O requests are submitted sequentially, they take 1 second to complete and %util is 100%.
When 10 I/O requests are submitted at the same time, they complete in 0.1 seconds and %util is only 10%.
Important: The %util metric has become largely irrelevant in modern storage systems. Do not determine whether an upgrade is required based only on this metric.
Q: Which metrics should I monitor to identify disk performance bottlenecks?
A: Focus on the following metrics instead of only %util:
I/O throughput: The actual rate of reading and writing data, measured in MB/s, compared with your business requirements.
Response time: The latency of I/O requests, which directly affects query performance.
IOPS: The number of I/O operations per second, matched to your workload pattern.
Queue depth: Indicates whether I/O requests are waiting.
Recommendation: A %util value of 100% that does not persist for a long time, such as several hours, generally requires no special attention. Use professional tools such as fio to load test actual peak bandwidth and IOPS to identify real performance bottlenecks.
Q: How do I correctly evaluate whether a disk has reached a performance bottleneck?
A: Perform the following steps:
Analyze the workload pattern: Understand characteristics such as the read/write ratio and I/O size.
Focus on actual throughput: Compare it with business requirements instead of only %util.
Use professional tools: Use fio and other tools to simulate actual workloads and test disk performance in real scenarios.
Evaluate query latency: Determine whether ES query response times meet business requirements.
Monitor key metrics: Monitor ES internal metrics such as indexing latency and search latency.
If you need to determine whether to upgrade, provide complete performance monitoring data, including but not limited to CPU utilization, memory utilization, I/O throughput, and query latency, rather than making a decision based on a single metric.
Upgrade impact
Q: Can I schedule an upgrade or disk expansion, or make it take effect immediately?
A: Neither cluster upgrades nor disk expansions support scheduled execution. After you submit and pay for a configuration upgrade, such as upgrading node specifications, adding nodes, or expanding disk capacity, it takes effect immediately and triggers the change and restart process. You cannot specify an execution time or restart time. To perform the upgrade at a specific time, such as 3:00 AM during off-peak business hours, manually submit and pay for it at that time.
Q: Do I need to reindex after adding data nodes?
A: No. Adding data nodes is an online operation. The cluster automatically redistributes data (rebalances), and existing indexes, data, and business queries are not interrupted.
Q: Why does CPU utilization on a small-specification ES node of 2 vCPU 4 GiB or lower surge above 90% without business load and cause the node to disconnect? How can I resolve this?
A: This behavior usually has the following causes:
Insufficient resource specifications: With specifications of 2 vCPU 4 GiB or lower, system processes themselves consume some baseline resources. Nodes of 2 vCPU 4 GiB or lower are not recommended in production environments.
High JVM heap memory utilization: When heap memory utilization remains above 85%, even minor load fluctuations can fill the heap and frequently trigger Full GC, which causes CPU spikes.
Amplified monitoring overhead: On low-specification nodes, the maintenance overhead of monitoring indexes accounts for a greater proportion of total node resources and can cause disproportionate resource consumption.
Solutions:
Emergency mitigation: Restart the abnormal node to release occupied resources. This is only a temporary measure.
Permanent solution: Upgrade the node specification to 4 vCPU 8 GiB or higher. For upgrade steps, see the Method 1: Upgrade through the console section of this topic.
Q: How can I ensure business continuity during an upgrade?
A: Take the following measures:
Make sure that each index has at least 1 replica and that cluster resource utilization remains at a normal level.
Transient request interruptions can occur during an upgrade. Configure a retry mechanism on the application side.
If a failure occurs during an upgrade, switch traffic over promptly.
Other questions
For answers to other common questions about cluster upgrades, see the following topics: