From 1efc960fb09868228e7d0009b0d7dce5f44d4873 Mon Sep 17 00:00:00 2001 From: chenhang Date: Wed, 29 Jun 2022 09:25:00 +0800 Subject: [PATCH] use estimateMaxDirectMemory instead of maxDirectMemory --- .../bookkeeper/bookie/storage/ldb/DbLedgerStorage.java | 10 +++++----- .../apache/bookkeeper/conf/ServerConfiguration.java | 2 +- .../stats/prometheus/PrometheusMetricsProvider.java | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java index 26b2e2c3957..00c448086cc 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/bookie/storage/ldb/DbLedgerStorage.java @@ -83,10 +83,10 @@ public class DbLedgerStorage implements LedgerStorage { private static final int MB = 1024 * 1024; - private static final long DEFAULT_WRITE_CACHE_MAX_SIZE_MB = (long) (0.25 * PlatformDependent.maxDirectMemory()) - / MB; - private static final long DEFAULT_READ_CACHE_MAX_SIZE_MB = (long) (0.25 * PlatformDependent.maxDirectMemory()) - / MB; + private static final long DEFAULT_WRITE_CACHE_MAX_SIZE_MB = + (long) (0.25 * PlatformDependent.estimateMaxDirectMemory()) / MB; + private static final long DEFAULT_READ_CACHE_MAX_SIZE_MB = + (long) (0.25 * PlatformDependent.estimateMaxDirectMemory()) / MB; static final String READ_AHEAD_CACHE_BATCH_SIZE = "dbStorage_readAheadCacheBatchSize"; private static final int DEFAULT_READ_AHEAD_CACHE_BATCH_SIZE = 100; @@ -136,7 +136,7 @@ public void initialize(ServerConfiguration conf, LedgerManager ledgerManager, Le log.info(" - Write cache size: {} MB", writeCacheMaxSize / MB); log.info(" - Read Cache: {} MB", readCacheMaxSize / MB); - if (readCacheMaxSize + writeCacheMaxSize > PlatformDependent.maxDirectMemory()) { + if (readCacheMaxSize + writeCacheMaxSize > PlatformDependent.estimateMaxDirectMemory()) { throw new IOException("Read and write cache sizes exceed the configured max direct memory size"); } diff --git a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java index 3101dbbe37b..fa9d58b1dad 100644 --- a/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java +++ b/bookkeeper-server/src/main/java/org/apache/bookkeeper/conf/ServerConfiguration.java @@ -943,7 +943,7 @@ public ServerConfiguration setJournalMaxMemorySizeMb(long journalMaxMemorySizeMb */ public long getJournalMaxMemorySizeMb() { // Default is taking 5% of max direct memory (and convert to MB). - long defaultValue = (long) (PlatformDependent.maxDirectMemory() * 0.05 / 1024 / 1024); + long defaultValue = (long) (PlatformDependent.estimateMaxDirectMemory() * 0.05 / 1024 / 1024); return this.getLong(JOURNAL_MAX_MEMORY_SIZE_MB, defaultValue); } diff --git a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java index 974d914e3e3..4586c7110cd 100644 --- a/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java +++ b/stats/bookkeeper-stats-providers/prometheus-metrics-provider/src/main/java/org/apache/bookkeeper/stats/prometheus/PrometheusMetricsProvider.java @@ -137,7 +137,7 @@ public double get() { registerMetrics(Gauge.build("jvm_memory_direct_bytes_max", "-").create().setChild(new Child() { @Override public double get() { - return PlatformDependent.maxDirectMemory(); + return PlatformDependent.estimateMaxDirectMemory(); } }));