Re: [PATCH v19 00/20] per memcg lru_lock

From: Alex Shi
Date: Thu Sep 24 2020 - 20:03:34 EST




在 2020/9/25 上午2:06, Daniel Jordan 写道:
> On Thu, Sep 24, 2020 at 11:28:15AM +0800, Alex Shi wrote:
>> The new version rebased on v5.9-rc6 with line by line review by Hugh Dickins.
>
> These thpscale numbers are from a proto-v19, which now seems to be gone from

Hi Daniel,

Thanks a lot for testing!
Is the head of lruv19 branch 9ee69337d51d on my github? We may just hit a narrow
window, which I just removed the old lruv19, and updated a new one. But even the
old version has same performance behavior too. :)

> Alex Shi's github. Once again, this is a regression test where memcg is
> enabled but not used. There's a reasonable amount of isolations from
> compaction as expected, as well as reclaim to a lesser extent.
>
> I confined the runs to one node of a two-socket broadwell server, the same
> machine as my other results. thpscale's total_size argument is about 80% of
> the node's memory, its madvise option was enabled, and the system's thp
> settings are enabled=always and defrag=madvise.
>
> Both base and lru kernels show huge variance run to run, which is surprising
> because I was expecting a microbenchmark like this to be more stable. There
> seems to be an overall decrease in mean fault latency with the lru changes, but
> it's in the noise, so it's hard to say how much of an improvement it really is.

Yes, the lru lock replace has no clear performance changes, unless the
migration/compaction compete on different lru locks which require to run in
different memcgs, and then tphscale should get some benefit.

>
> I only ran up to four threads so these would be ready before I left. I'll be
> away for a few days.
>
>
> thpscale Fault Latencies
> thp thp thp thp
> base1 base2 lru1 lru2
> Min fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Min fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Min fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Min fault-huge-1 214.00 ( 0.00%) 227.00 ( -6.07%) 235.00 ( -9.81%) 240.00 ( -12.15%)
> Min fault-huge-3 321.00 ( 0.00%) 366.00 ( -14.02%) 323.00 ( -0.62%) 407.00 ( -26.79%)
> Min fault-huge-4 441.00 ( 0.00%) 401.00 ( 9.07%) 525.00 ( -19.05%) 434.00 ( 1.59%)
> Min fault-both-1 214.00 ( 0.00%) 227.00 ( -6.07%) 235.00 ( -9.81%) 240.00 ( -12.15%)
> Min fault-both-3 321.00 ( 0.00%) 366.00 ( -14.02%) 323.00 ( -0.62%) 407.00 ( -26.79%)
> Min fault-both-4 441.00 ( 0.00%) 401.00 ( 9.07%) 525.00 ( -19.05%) 434.00 ( 1.59%)
> Amean fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Amean fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Amean fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Amean fault-huge-1 1549.55 ( 0.00%) 1667.13 * -7.59%* 1361.50 * 12.14%* 1458.10 * 5.90%*
> Amean fault-huge-3 2582.29 ( 0.00%) 2556.45 ( 1.00%) 2756.65 * -6.75%* 2157.29 * 16.46%*
> Amean fault-huge-4 2352.21 ( 0.00%) 2709.37 * -15.18%* 2323.89 ( 1.20%) 1888.94 * 19.69%*
> Amean fault-both-1 1549.55 ( 0.00%) 1667.13 * -7.59%* 1361.50 * 12.14%* 1458.10 * 5.90%*
> Amean fault-both-3 2582.29 ( 0.00%) 2556.45 ( 1.00%) 2756.65 * -6.75%* 2157.29 * 16.46%*
> Amean fault-both-4 2352.21 ( 0.00%) 2709.37 * -15.18%* 2323.89 ( 1.20%) 1888.94 * 19.69%*
> Stddev fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Stddev fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Stddev fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Stddev fault-huge-1 2011.48 ( 0.00%) 3765.64 ( -87.21%) 3061.45 ( -52.20%) 1758.56 ( 12.57%)
> Stddev fault-huge-3 11153.49 ( 0.00%) 8339.83 ( 25.23%) 7017.28 ( 37.08%) 3976.86 ( 64.34%)
> Stddev fault-huge-4 8817.67 ( 0.00%) 16241.48 ( -84.19%) 11595.28 ( -31.50%) 6631.47 ( 24.79%)
> Stddev fault-both-1 2011.48 ( 0.00%) 3765.64 ( -87.21%) 3061.45 ( -52.20%) 1758.56 ( 12.57%)
> Stddev fault-both-3 11153.49 ( 0.00%) 8339.83 ( 25.23%) 7017.28 ( 37.08%) 3976.86 ( 64.34%)
> Stddev fault-both-4 8817.67 ( 0.00%) 16241.48 ( -84.19%) 11595.28 ( -31.50%) 6631.47 ( 24.79%)
> CoeffVar fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> CoeffVar fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> CoeffVar fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> CoeffVar fault-huge-1 129.81 ( 0.00%) 225.88 ( -74.00%) 224.86 ( -73.22%) 120.61 ( 7.09%)
> CoeffVar fault-huge-3 431.92 ( 0.00%) 326.23 ( 24.47%) 254.56 ( 41.06%) 184.35 ( 57.32%)
> CoeffVar fault-huge-4 374.87 ( 0.00%) 599.46 ( -59.91%) 498.96 ( -33.10%) 351.07 ( 6.35%)
> CoeffVar fault-both-1 129.81 ( 0.00%) 225.88 ( -74.00%) 224.86 ( -73.22%) 120.61 ( 7.09%)
> CoeffVar fault-both-3 431.92 ( 0.00%) 326.23 ( 24.47%) 254.56 ( 41.06%) 184.35 ( 57.32%)
> CoeffVar fault-both-4 374.87 ( 0.00%) 599.46 ( -59.91%) 498.96 ( -33.10%) 351.07 ( 6.35%)
> Max fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Max fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Max fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> Max fault-huge-1 90549.00 ( 0.00%) 166062.00 ( -83.39%) 134242.00 ( -48.25%) 82424.00 ( 8.97%)
> Max fault-huge-3 1229237.00 ( 0.00%) 392796.00 ( 68.05%) 508290.00 ( 58.65%) 433992.00 ( 64.69%)
> Max fault-huge-4 418414.00 ( 0.00%) 1147308.00 (-174.20%) 792153.00 ( -89.32%) 433393.00 ( -3.58%)
> Max fault-both-1 90549.00 ( 0.00%) 166062.00 ( -83.39%) 134242.00 ( -48.25%) 82424.00 ( 8.97%)
> Max fault-both-3 1229237.00 ( 0.00%) 392796.00 ( 68.05%) 508290.00 ( 58.65%) 433992.00 ( 64.69%)
> Max fault-both-4 418414.00 ( 0.00%) 1147308.00 (-174.20%) 792153.00 ( -89.32%) 433393.00 ( -3.58%)
> BAmean-50 fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-50 fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-50 fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-50 fault-huge-1 1329.84 ( 0.00%) 1086.23 ( 18.32%) 765.68 ( 42.42%) 1238.41 ( 6.88%)
> BAmean-50 fault-huge-3 1410.46 ( 0.00%) 1406.43 ( 0.29%) 1749.95 ( -24.07%) 1362.23 ( 3.42%)
> BAmean-50 fault-huge-4 1453.01 ( 0.00%) 1373.01 ( 5.51%) 1268.61 ( 12.69%) 1157.08 ( 20.37%)
> BAmean-50 fault-both-1 1329.84 ( 0.00%) 1086.23 ( 18.32%) 765.68 ( 42.42%) 1238.41 ( 6.88%)
> BAmean-50 fault-both-3 1410.46 ( 0.00%) 1406.43 ( 0.29%) 1749.95 ( -24.07%) 1362.23 ( 3.42%)
> BAmean-50 fault-both-4 1453.01 ( 0.00%) 1373.01 ( 5.51%) 1268.61 ( 12.69%) 1157.08 ( 20.37%)
> BAmean-95 fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-95 fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-95 fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-95 fault-huge-1 1428.93 ( 0.00%) 1336.45 ( 6.47%) 1125.72 ( 21.22%) 1324.67 ( 7.30%)
> BAmean-95 fault-huge-3 1881.39 ( 0.00%) 1868.23 ( 0.70%) 2257.90 ( -20.01%) 1794.46 ( 4.62%)
> BAmean-95 fault-huge-4 1853.49 ( 0.00%) 2038.27 ( -9.97%) 1758.37 ( 5.13%) 1522.69 ( 17.85%)
> BAmean-95 fault-both-1 1428.93 ( 0.00%) 1336.45 ( 6.47%) 1125.72 ( 21.22%) 1324.67 ( 7.30%)
> BAmean-95 fault-both-3 1881.39 ( 0.00%) 1868.23 ( 0.70%) 2257.90 ( -20.01%) 1794.46 ( 4.62%)
> BAmean-95 fault-both-4 1853.49 ( 0.00%) 2038.27 ( -9.97%) 1758.37 ( 5.13%) 1522.69 ( 17.85%)
> BAmean-99 fault-base-1 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-99 fault-base-3 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-99 fault-base-4 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%) 0.00 ( 0.00%)
> BAmean-99 fault-huge-1 1447.04 ( 0.00%) 1394.38 ( 3.64%) 1188.40 ( 17.87%) 1359.40 ( 6.06%)
> BAmean-99 fault-huge-3 2139.13 ( 0.00%) 2127.28 ( 0.55%) 2500.44 ( -16.89%) 2024.05 ( 5.38%)
> BAmean-99 fault-huge-4 2051.01 ( 0.00%) 2141.53 ( -4.41%) 1959.27 ( 4.47%) 1705.47 ( 16.85%)
> BAmean-99 fault-both-1 1447.04 ( 0.00%) 1394.38 ( 3.64%) 1188.40 ( 17.87%) 1359.40 ( 6.06%)
> BAmean-99 fault-both-3 2139.13 ( 0.00%) 2127.28 ( 0.55%) 2500.44 ( -16.89%) 2024.05 ( 5.38%)
> BAmean-99 fault-both-4 2051.01 ( 0.00%) 2141.53 ( -4.41%) 1959.27 ( 4.47%) 1705.47 ( 16.85%)
>
> thpscale Percentage Faults Huge
> thp thp thp thp
> base1 base2 lru1 lru2
> Percentage huge-1 100.00 ( 0.00%) 100.00 ( 0.00%) 100.00 ( 0.00%) 100.00 ( 0.00%)
> Percentage huge-3 100.00 ( 0.00%) 100.00 ( 0.00%) 100.00 ( 0.00%) 100.00 ( 0.00%)
> Percentage huge-4 100.00 ( 0.00%) 100.00 ( 0.00%) 100.00 ( 0.00%) 100.00 ( 0.00%)
>
> thp thp thp thp
> base1 base2 lru1 lru2
> Duration User 93.79 93.26 93.61 97.02
> Duration System 592.52 601.32 585.31 575.20
> Duration Elapsed 1239.40 1243.79 1232.97 1229.09
>
> thp thp thp thp
> base1 base2 lru1 lru2
> Ops Minor Faults 2532126.00 2377121.00 2410222.00 2414384.00
> Ops Major Faults 836.00 722.00 778.00 610.00
> Ops Swap Ins 676.00 644.00 656.00 760.00
> Ops Swap Outs 15887.00 15705.00 11341.00 6812.00
> Ops Allocation stalls 67986.00 44391.00 48791.00 70025.00
> Ops Fragmentation stalls 0.00 0.00 0.00 0.00
> Ops DMA allocs 0.00 0.00 0.00 0.00
> Ops DMA32 allocs 0.00 0.00 0.00 0.00
> Ops Normal allocs 163203689.00 154651154.00 159354937.00 165237378.00
> Ops Movable allocs 0.00 0.00 0.00 0.00
> Ops Direct pages scanned 832666.00 1385214.00 652686.00 499004.00
> Ops Kswapd pages scanned 808301.00 3517190.00 2310658.00 615450.00
> Ops Kswapd pages reclaimed 28737.00 314122.00 13761.00 21149.00
> Ops Direct pages reclaimed 1542.00 118664.00 278.00 5002.00
> Ops Kswapd efficiency % 3.56 8.93 0.60 3.44
> Ops Kswapd velocity 652.17 2827.80 1874.06 500.74
> Ops Direct efficiency % 0.19 8.57 0.04 1.00
> Ops Direct velocity 671.83 1113.70 529.36 405.99
> Ops Percentage direct scans 50.74 28.26 22.03 44.78
> Ops Page writes by reclaim 15887.00 15705.00 11341.00 6812.00
> Ops Page writes file 0.00 0.00 0.00 0.00
> Ops Page writes anon 15887.00 15705.00 11341.00 6812.00
> Ops Page reclaim immediate 0.00 0.00 0.00 0.00
> Ops Sector Reads 79350969.00 79290528.00 79326339.00 79294800.00
> Ops Sector Writes 105724641.00 105722825.00 105705814.00 105687161.00
> Ops Page rescued immediate 0.00 0.00 0.00 0.00
> Ops Slabs scanned 83935.00 113839.00 100286.00 78442.00
> Ops Direct inode steals 56.00 44.00 86.00 31.00
> Ops Kswapd inode steals 0.00 1.00 2.00 2.00
> Ops Kswapd skipped wait 0.00 0.00 0.00 0.00
> Ops THP fault alloc 232051.00 232036.00 232035.00 232035.00
> Ops THP fault fallback 1.00 0.00 0.00 0.00
> Ops THP collapse alloc 13.00 12.00 15.00 11.00
> Ops THP collapse fail 0.00 0.00 0.00 0.00
> Ops THP split 22665.00 52360.00 35592.00 15363.00
> Ops THP split failed 0.00 0.00 0.00 0.00
> Ops Compaction stalls 144127.00 120784.00 125512.00 144578.00
> Ops Compaction success 8039.00 24423.00 15316.00 3672.00
> Ops Compaction failures 136088.00 96361.00 110196.00 140906.00
> Ops Compaction efficiency 5.58 20.22 12.20 2.54
> Ops Page migrate success 4170185.00 12177428.00 7860810.00 3037053.00
> Ops Page migrate failure 9476.00 9987.00 1987.00 623.00
> Ops Compaction pages isolated 9551164.00 25547480.00 16290756.00 6222921.00
> Ops Compaction migrate scanned 6529450.00 15982527.00 9845328.00 5711509.00
> Ops Compaction free scanned 17198448.00 21663579.00 9531167.00 10790527.00
> Ops Compact scan efficiency 37.97 73.78 103.30 52.93
> Ops Compaction cost 4555.96 13237.59 8537.99 3310.69
> Ops Kcompactd wake 51.00 88.00 48.00 20.00
> Ops Kcompactd migrate scanned 127333.00 325654.00 144656.00 670374.00
> Ops Kcompactd free scanned 100028.00 35658.00 12486.00 127376.00
> Ops NUMA alloc hit 48379083.00 48250045.00 48278578.00 48259808.00
> Ops NUMA alloc miss 68141.00 51994.00 61465.00 70881.00
> Ops NUMA interleave hit 0.00 0.00 0.00 0.00
> Ops NUMA alloc local 48379030.00 48250007.00 48278535.00 48259769.00
> Ops NUMA base-page range updates 19832.00 4340.00 14959.00 5190.00
> Ops NUMA PTE updates 2424.00 756.00 1647.00 1094.00
> Ops NUMA PMD updates 34.00 7.00 26.00 8.00
> Ops NUMA hint faults 2148.00 386.00 1411.00 415.00
> Ops NUMA hint local faults % 1814.00 362.00 1401.00 238.00
> Ops NUMA hint local percent 84.45 93.78 99.29 57.35
> Ops NUMA pages migrated 5392.00 535.00 1030.00 1710.00
> Ops AutoNUMA cost 10.98 1.97 7.18 2.14
>