diff --git a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java index fd1eb6f1a..edab874fe 100644 --- a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java +++ b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java @@ -130,7 +130,7 @@ public class MetricsPersistentWorker extends PersistenceWorker { * Hard coded the max size. This is only the batch size of one metrics, too large number is meaningless. */ int maxBatchGetSize = 2000; - final int batchSize = Math.max(maxBatchGetSize, lastCollection.size()); + final int batchSize = Math.min(maxBatchGetSize, lastCollection.size()); List metricsList = new ArrayList<>(); for (Metrics data : lastCollection) { transWorker.ifPresent(metricsTransWorker -> metricsTransWorker.in(data));