Page MenuHomePhabricator

Ceph MDSs report oversized cache
Closed, ResolvedPublic

Description

We have an alert about oversized Ceph MDS cache

btullis@cephosd1001:~$ sudo ceph status
  cluster:
    id:     6d4278e1-ea45-4d29-86fe-85b44c150813
    health: HEALTH_WARN
            1 MDSs report oversized cache
 
  services:
    mon: 5 daemons, quorum cephosd1001,cephosd1002,cephosd1003,cephosd1004,cephosd1005 (age 11w)
    mgr: cephosd1001(active, since 11w), standbys: cephosd1002, cephosd1003, cephosd1004, cephosd1005
    mds: 3/3 daemons up, 2 standby
    osd: 100 osds: 100 up (since 11w), 100 in (since 15M)
    rgw: 5 daemons active (5 hosts, 1 zones)
 
  data:
    volumes: 3/3 healthy
    pools:   17 pools, 4481 pgs
    objects: 15.93M objects, 39 TiB
    usage:   145 TiB used, 1005 TiB / 1.1 PiB avail
    pgs:     4476 active+clean
             5    active+clean+scrubbing+deep
 
  io:
    client:   91 MiB/s rd, 76 MiB/s wr, 96 op/s rd, 1.47k op/s wr

This is likely caused by the recent increase in the usage of the dumps volume, since it correllated with the start of a dumps v1 run.

We can investigate this.

Documentation on cache configuration is here: https://docs.ceph.com/en/reef/cephfs/cache-configuration/

Event Timeline

BTullis triaged this task as High priority.Aug 4 2025, 8:59 AM

The current value for mds_cache_memory_limit is the default of 4GB. https://docs.ceph.com/en/reef/cephfs/cache-configuration/#confval-mds_cache_memory_limit

btullis@cephosd1001:~$ sudo ceph config get mds mds_cache_memory_limit
4294967296

According to this page:

Use a value between 8 GB and 64 GB for mds_cache_memory_limit. Setting more cache can cause issues with recovery. This limit is approximately 66% of the desired maximum memory use of the MDS.

We still have quite a bit of free memory overhead on this cluster, e.g. https://grafana.wikimedia.org/goto/Spz4mjQNR?orgId=1

image.png (974×1 px, 78 KB)

Therefore, I think that it is reasonable to double the amount of cache for the MDS to 8GB.

It would be nice to have this in puppet, but we don't have this kind of runtime configuration in puppet yet.
At least I should be able to set it on both the eqiad and codfw clusters.

I have configured both clusters.

btullis@cephosd1001:~$ sudo ceph config set mds mds_cache_memory_limit 8589934592
btullis@cephosd1001:~$ sudo ceph config get mds mds_cache_memory_limit
8589934592
btullis@cephosd2001:~$ sudo ceph config get mds mds_cache_memory_limit
4294967296
btullis@cephosd2001:~$ sudo ceph config set mds mds_cache_memory_limit 8589934592
btullis@cephosd2001:~$ sudo ceph config get mds mds_cache_memory_limit
8589934592
btullis@cephosd2001:~$