diff options
| author | Dan Engelbrecht <[email protected]> | 2022-04-01 15:20:42 +0200 |
|---|---|---|
| committer | Dan Engelbrecht <[email protected]> | 2022-04-01 15:20:42 +0200 |
| commit | ef8cb5f11168183be77b1c121a9171b2ea9fbaab (patch) | |
| tree | fc9abc4f409ce05a6f290e9857659e72f6aee3f8 /zenserver | |
| parent | fix entry validation (diff) | |
| download | zen-ef8cb5f11168183be77b1c121a9171b2ea9fbaab.tar.xz zen-ef8cb5f11168183be77b1c121a9171b2ea9fbaab.zip | |
Make gc reserve a global resource
Diffstat (limited to 'zenserver')
| -rw-r--r-- | zenserver/config.cpp | 8 | ||||
| -rw-r--r-- | zenserver/config.h | 1 | ||||
| -rw-r--r-- | zenserver/zenserver.cpp | 1 |
3 files changed, 10 insertions, 0 deletions
diff --git a/zenserver/config.cpp b/zenserver/config.cpp index b7fc18b4e..ac0f863cc 100644 --- a/zenserver/config.cpp +++ b/zenserver/config.cpp @@ -428,6 +428,13 @@ ParseCliOptions(int argc, char* argv[], ZenServerOptions& ServerOptions) "Max duration in seconds before Z$ entries get evicted.", cxxopts::value<int32_t>(ServerOptions.GcConfig.Cache.MaxDurationSeconds)->default_value("86400"), ""); + + options.add_option("gc", + "", + "disk-reserve-size", + "Size of gc disk reserve in bytes.", + cxxopts::value<uint64_t>(ServerOptions.GcConfig.DiskReserveSize)->default_value("268435456"), + ""); try { auto result = options.parse(argc, argv); @@ -699,6 +706,7 @@ ParseConfigFile(const std::filesystem::path& Path, ZenServerOptions& ServerOptio if (sol::optional<sol::table> GcConfig = lua["gc"]) { ServerOptions.GcConfig.IntervalSeconds = GcConfig.value().get_or("intervalseconds", 0); + ServerOptions.GcConfig.DiskReserveSize = GcConfig.value().get_or("diskreservesize", uint64_t(1u << 28)); if (sol::optional<sol::table> CacheGcConfig = GcConfig.value()["cache"]) { diff --git a/zenserver/config.h b/zenserver/config.h index a61a7f89f..9f1b3645c 100644 --- a/zenserver/config.h +++ b/zenserver/config.h @@ -91,6 +91,7 @@ struct ZenGcConfig int32_t IntervalSeconds = 0; bool CollectSmallObjects = true; bool Enabled = true; + uint64_t DiskReserveSize = 1ul << 28; }; struct ZenServerOptions diff --git a/zenserver/zenserver.cpp b/zenserver/zenserver.cpp index 667bcd317..f81deb167 100644 --- a/zenserver/zenserver.cpp +++ b/zenserver/zenserver.cpp @@ -369,6 +369,7 @@ public: .MaxCacheDuration = std::chrono::seconds(ServerOptions.GcConfig.Cache.MaxDurationSeconds), .CollectSmallObjects = ServerOptions.GcConfig.CollectSmallObjects, .Enabled = ServerOptions.GcConfig.Enabled, + .DiskReserveSize = ServerOptions.GcConfig.DiskReserveSize, }; m_GcScheduler.Initialize(GcConfig); |