| 413 | } |
| 414 | |
| 415 | void ProcessCacheManager::ClearProcessExpiredCache() { |
| 416 | if (mInited) { |
| 417 | auto now = TimeKeeper::GetInstance()->NowSec(); |
| 418 | if (now > mLastProcessCacheClearTime + INT32_FLAG(ebpf_process_cache_gc_interval_sec)) { |
| 419 | mProcessCache.ClearExpiredCache(); |
| 420 | mLastProcessCacheClearTime = now; |
| 421 | int processCacheSize = mProcessCache.Size(); |
| 422 | SET_GAUGE(mProcessCacheSize, processCacheSize); |
| 423 | SET_GAUGE(mProcessDataMapSize, mProcessDataMap.Size()); |
| 424 | if (processCacheSize > INT32_FLAG(max_ebpf_process_cache_size)) { |
| 425 | mProcessCache.ForceShrink(); |
| 426 | LOG_WARNING(sLogger, |
| 427 | ("process cache size exceed limit, current size", |
| 428 | processCacheSize)("after force shrink size", mProcessCache.Size())); |
| 429 | } |
| 430 | } |
| 431 | } |
| 432 | } |
| 433 | |
| 434 | } // namespace logtail::ebpf |
no test coverage detected