mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-03 20:24:51 -04:00
Track why we're evicting from caches (#10829)
So we can see distinguish between "evicting because the cache is too big" and "evicting because the cache entries haven't been recently used".
This commit is contained in:
parent
51e2db3598
commit
a2d7195e01
4 changed files with 31 additions and 15 deletions
|
@ -22,7 +22,7 @@ from typing_extensions import Literal
|
|||
from synapse.config import cache as cache_config
|
||||
from synapse.metrics.background_process_metrics import run_as_background_process
|
||||
from synapse.util import Clock
|
||||
from synapse.util.caches import register_cache
|
||||
from synapse.util.caches import EvictionReason, register_cache
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
|
@ -98,9 +98,9 @@ class ExpiringCache(Generic[KT, VT]):
|
|||
while self._max_size and len(self) > self._max_size:
|
||||
_key, value = self._cache.popitem(last=False)
|
||||
if self.iterable:
|
||||
self.metrics.inc_evictions(len(value.value))
|
||||
self.metrics.inc_evictions(EvictionReason.size, len(value.value))
|
||||
else:
|
||||
self.metrics.inc_evictions()
|
||||
self.metrics.inc_evictions(EvictionReason.size)
|
||||
|
||||
def __getitem__(self, key: KT) -> VT:
|
||||
try:
|
||||
|
@ -175,9 +175,9 @@ class ExpiringCache(Generic[KT, VT]):
|
|||
for k in keys_to_delete:
|
||||
value = self._cache.pop(k)
|
||||
if self.iterable:
|
||||
self.metrics.inc_evictions(len(value.value))
|
||||
self.metrics.inc_evictions(EvictionReason.time, len(value.value))
|
||||
else:
|
||||
self.metrics.inc_evictions()
|
||||
self.metrics.inc_evictions(EvictionReason.time)
|
||||
|
||||
logger.debug(
|
||||
"[%s] _prune_cache before: %d, after len: %d",
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue