From 2fb430761bb16fc4dbdd45bf25982b68fcd8cb8c Mon Sep 17 00:00:00 2001 From: caojiajun Date: Tue, 11 Feb 2025 09:40:58 +0800 Subject: [PATCH] feat: update default conf (#364) --- .../storage/command/LocalStorageExecutors.java | 14 ++++++-------- .../local/storage/key/slot/SlotKeyReadWrite.java | 2 +- .../storage/value/string/SlotStringReadWrite.java | 2 +- .../proxy/springboot/CamelliaRedisProxyUtil.java | 2 +- 4 files changed, 9 insertions(+), 11 deletions(-) diff --git a/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/command/LocalStorageExecutors.java b/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/command/LocalStorageExecutors.java index ab16a957a..d28b2c2ed 100644 --- a/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/command/LocalStorageExecutors.java +++ b/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/command/LocalStorageExecutors.java @@ -19,6 +19,8 @@ public class LocalStorageExecutors { private static final Logger logger = LoggerFactory.getLogger(LocalStorageExecutors.class); + private static final int defaultThreads = Math.min(4, SysUtils.getCpuHalfNum()); + private static volatile LocalStorageExecutors INSTANCE; private final MpscSlotHashExecutor commandExecutor; @@ -31,15 +33,11 @@ public class LocalStorageExecutors { private LocalStorageExecutors() { { - walAsync = ProxyDynamicConf.getBoolean("local.storage.wal.async.enable", false); - if (walAsync) { - walThreads = ProxyDynamicConf.getInt("local.storage.wal.write.threads", 4); - } else { - walThreads = 0; - } + walAsync = ProxyDynamicConf.getBoolean("local.storage.wal.async.enable", true); + walThreads = ProxyDynamicConf.getInt("local.storage.wal.write.threads", defaultThreads); } { - int threads = ProxyDynamicConf.getInt("local.storage.command.executor.threads", SysUtils.getCpuNum() * 3 / 10 - (walThreads / 2)); + int threads = ProxyDynamicConf.getInt("local.storage.command.executor.threads", defaultThreads); if (threads <= 0) { threads = 4; } @@ -48,7 +46,7 @@ private LocalStorageExecutors() { logger.info("local storage command executor init success, threads = {}, queueSize = {}", threads, queueSize); } { - int threads = ProxyDynamicConf.getInt("local.storage.flush.executor.threads", SysUtils.getCpuNum() * 2 / 10 - (walThreads / 2)); + int threads = ProxyDynamicConf.getInt("local.storage.flush.executor.threads", defaultThreads); if (threads <= 0) { threads = 1; } diff --git a/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/key/slot/SlotKeyReadWrite.java b/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/key/slot/SlotKeyReadWrite.java index 291204d07..c76d588e5 100644 --- a/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/key/slot/SlotKeyReadWrite.java +++ b/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/key/slot/SlotKeyReadWrite.java @@ -35,7 +35,7 @@ public class SlotKeyReadWrite { ProxyDynamicConf.registerCallback(SlotKeyReadWrite::updateConf); } private static void updateConf() { - int keyFlushSize = ProxyDynamicConf.getInt("local.storage.key.flush.size", 200); + int keyFlushSize = ProxyDynamicConf.getInt("local.storage.key.flush.size", 128); if (SlotKeyReadWrite.keyFlushSize != keyFlushSize) { SlotKeyReadWrite.keyFlushSize = keyFlushSize; logger.info("local.storage.key.flush.size, update to {}", keyFlushSize); diff --git a/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/value/string/SlotStringReadWrite.java b/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/value/string/SlotStringReadWrite.java index e53e48cdc..07e1a23b7 100644 --- a/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/value/string/SlotStringReadWrite.java +++ b/camellia-redis-proxy/camellia-redis-proxy-core/src/main/java/com/netease/nim/camellia/redis/proxy/upstream/local/storage/value/string/SlotStringReadWrite.java @@ -35,7 +35,7 @@ public class SlotStringReadWrite { ProxyDynamicConf.registerCallback(SlotStringReadWrite::updateConf); } private static void updateConf() { - int stringValueFlushSize = ProxyDynamicConf.getInt("local.storage.string.value.flush.size", 200); + int stringValueFlushSize = ProxyDynamicConf.getInt("local.storage.string.value.flush.size", 128); if (SlotStringReadWrite.stringValueFlushSize != stringValueFlushSize) { SlotStringReadWrite.stringValueFlushSize = stringValueFlushSize; logger.info("local.storage.string.value.flush.size, update to {}", stringValueFlushSize); diff --git a/camellia-redis-proxy/camellia-redis-proxy-spring-boot-starters/camellia-redis-proxy-spring-boot-starter/src/main/java/com/netease/nim/camellia/redis/proxy/springboot/CamelliaRedisProxyUtil.java b/camellia-redis-proxy/camellia-redis-proxy-spring-boot-starters/camellia-redis-proxy-spring-boot-starter/src/main/java/com/netease/nim/camellia/redis/proxy/springboot/CamelliaRedisProxyUtil.java index 6b331f361..e4b942564 100644 --- a/camellia-redis-proxy/camellia-redis-proxy-spring-boot-starters/camellia-redis-proxy-spring-boot-starter/src/main/java/com/netease/nim/camellia/redis/proxy/springboot/CamelliaRedisProxyUtil.java +++ b/camellia-redis-proxy/camellia-redis-proxy-spring-boot-starters/camellia-redis-proxy-spring-boot-starter/src/main/java/com/netease/nim/camellia/redis/proxy/springboot/CamelliaRedisProxyUtil.java @@ -61,7 +61,7 @@ public static CamelliaServerProperties parse(CamelliaRedisProxyProperties proper try { Resource resource = RedisResourceUtil.parseResourceByUrl(new Resource(properties.getTranspond().getLocal().getResource())); if (resource instanceof RedisLocalStorageResource) { - serverProperties.setWorkThread(SysUtils.getCpuHalfNum()); + serverProperties.setWorkThread(Math.min(4, SysUtils.getCpuHalfNum())); } else { serverProperties.setWorkThread(SysUtils.getCpuNum()); }