mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 00:30:49 +00:00
More fixes
This commit is contained in:
parent
5b51a35e01
commit
ade79cfd7a
@ -186,9 +186,6 @@ std::shared_ptr<ICgroupsReader> createCgroupsReader()
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
constexpr uint64_t cgroups_memory_usage_tick_ms{50};
|
|
||||||
constexpr uint64_t jemalloc_memory_usage_tick_ms{100};
|
|
||||||
|
|
||||||
std::string_view sourceToString(MemoryWorker::MemoryUsageSource source)
|
std::string_view sourceToString(MemoryWorker::MemoryUsageSource source)
|
||||||
{
|
{
|
||||||
switch (source)
|
switch (source)
|
||||||
@ -213,6 +210,8 @@ MemoryWorker::MemoryWorker(uint64_t period_ms_)
|
|||||||
#if defined(OS_LINUX)
|
#if defined(OS_LINUX)
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
static constexpr uint64_t cgroups_memory_usage_tick_ms{50};
|
||||||
|
|
||||||
cgroups_reader = createCgroupsReader();
|
cgroups_reader = createCgroupsReader();
|
||||||
source = MemoryUsageSource::Cgroups;
|
source = MemoryUsageSource::Cgroups;
|
||||||
if (period_ms == 0)
|
if (period_ms == 0)
|
||||||
@ -227,6 +226,8 @@ MemoryWorker::MemoryWorker(uint64_t period_ms_)
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if USE_JEMALLOC
|
#if USE_JEMALLOC
|
||||||
|
static constexpr uint64_t jemalloc_memory_usage_tick_ms{100};
|
||||||
|
|
||||||
source = MemoryUsageSource::Jemalloc;
|
source = MemoryUsageSource::Jemalloc;
|
||||||
if (period_ms == 0)
|
if (period_ms == 0)
|
||||||
period_ms = jemalloc_memory_usage_tick_ms;
|
period_ms = jemalloc_memory_usage_tick_ms;
|
||||||
@ -270,7 +271,11 @@ uint64_t MemoryWorker::getMemoryUsage()
|
|||||||
case MemoryUsageSource::Cgroups:
|
case MemoryUsageSource::Cgroups:
|
||||||
return cgroups_reader->readMemoryUsage();
|
return cgroups_reader->readMemoryUsage();
|
||||||
case MemoryUsageSource::Jemalloc:
|
case MemoryUsageSource::Jemalloc:
|
||||||
|
#if USE_JEMALLOC
|
||||||
return resident_mib.getValue();
|
return resident_mib.getValue();
|
||||||
|
#else
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
case MemoryUsageSource::None:
|
case MemoryUsageSource::None:
|
||||||
throw DB::Exception(ErrorCodes::LOGICAL_ERROR, "Trying to fetch memory usage while no memory source can be used");
|
throw DB::Exception(ErrorCodes::LOGICAL_ERROR, "Trying to fetch memory usage while no memory source can be used");
|
||||||
}
|
}
|
||||||
@ -279,7 +284,7 @@ uint64_t MemoryWorker::getMemoryUsage()
|
|||||||
void MemoryWorker::backgroundThread()
|
void MemoryWorker::backgroundThread()
|
||||||
{
|
{
|
||||||
std::chrono::milliseconds chrono_period_ms{period_ms};
|
std::chrono::milliseconds chrono_period_ms{period_ms};
|
||||||
bool first_run = true;
|
[[maybe_unused]] bool first_run = true;
|
||||||
std::unique_lock lock(mutex);
|
std::unique_lock lock(mutex);
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
@ -289,8 +294,10 @@ void MemoryWorker::backgroundThread()
|
|||||||
|
|
||||||
Stopwatch total_watch;
|
Stopwatch total_watch;
|
||||||
|
|
||||||
|
#if USE_JEMALLOC
|
||||||
if (source == MemoryUsageSource::Jemalloc)
|
if (source == MemoryUsageSource::Jemalloc)
|
||||||
epoch_mib.setValue(0);
|
epoch_mib.setValue(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
Int64 resident = getMemoryUsage();
|
Int64 resident = getMemoryUsage();
|
||||||
MemoryTracker::updateRSS(resident);
|
MemoryTracker::updateRSS(resident);
|
||||||
|
Loading…
Reference in New Issue
Block a user