Skip to content

Commit

Permalink
[bugfix](cache) the cache capacity is wrong when memusage > soft meml…
Browse files Browse the repository at this point in the history
…imit (apache#40961)

## Proposed changes

bug is introduced by apache#40542

Co-authored-by: yiguolei <[email protected]>
  • Loading branch information
2 people authored and feifeifeimoon committed Sep 24, 2024
1 parent b58570a commit afdcdad
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion be/src/common/daemon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -245,10 +245,14 @@ void refresh_cache_capacity() {
auto cache_capacity_reduce_mem_limit = uint64_t(
doris::MemInfo::soft_mem_limit() * config::cache_capacity_reduce_mem_limit_frac);
int64_t process_memory_usage = doris::GlobalMemoryArbitrator::process_memory_usage();
// the rule is like this:
// 1. if the process mem usage < soft memlimit * 0.6, then do not need adjust cache capacity.
// 2. if the process mem usage > soft memlimit * 0.6 and process mem usage < soft memlimit, then it will be adjusted to a lower value.
// 3. if the process mem usage > soft memlimit, then the capacity is adjusted to 0.
double new_cache_capacity_adjust_weighted =
process_memory_usage <= cache_capacity_reduce_mem_limit
? 1
: std::min<double>(
: std::max<double>(
1 - (process_memory_usage - cache_capacity_reduce_mem_limit) /
(doris::MemInfo::soft_mem_limit() -
cache_capacity_reduce_mem_limit),
Expand Down

0 comments on commit afdcdad

Please sign in to comment.