Yu Zhao <yuzhao@xxxxxxxxxx> 于2023年12月25日周一 14:58写道: > > On Fri, Dec 22, 2023 at 3:24 AM Kairui Song <ryncsn@xxxxxxxxx> wrote: > > > > From: Kairui Song <kasong@xxxxxxxxxxx> > > > > Another overhead of aging is page moving. Actually, in most cases, > > pages are being moved to the same gen after folio_inc_gen is called, > > especially the protected pages. So it's better to move them in bulk. > > > > This also has a good effect on LRU ordering. Currently when MGLRU > > ages, it walks the LRU backward, and the protected pages are moved to > > the tail of newer gen one by one, which reverses the order of pages in > > LRU. Moving them in batches can help keep their order, only in a small > > scope though due to the scan limit of MAX_LRU_BATCH pages. > > > > After this commit, we can see a performance gain: > > > > Tested in a 4G memcg on a EPYC 7K62 with: > > > > memcached -u nobody -m 16384 -s /tmp/memcached.socket \ > > -a 0766 -t 16 -B binary & > > > > memtier_benchmark -S /tmp/memcached.socket \ > > -P memcache_binary -n allkeys \ > > --key-minimum=1 --key-maximum=16000000 -d 1024 \ > > --ratio=1:0 --key-pattern=P:P -c 2 -t 16 --pipeline 8 -x 6 > > > > Average result of 18 test runs: > > > > Before: 44017.78 Ops/sec > > After patch 1-2: 44810.01 Ops/sec (+1.8%) > > Was it tested with CONFIG_DEBUG_LIST=y? > Hi, CONFIG_DEBUG_LIST is disabled here. > Also, the (44810.01-44687.08)/44687.08=0.0027 improvement also sounded > like a noise to me. >