[dm-devel] [PATCHv2 0/6] dm-zoned: improve cache performance
Damien Le Moal
Damien.LeMoal at wdc.com
Tue May 19 22:36:10 UTC 2020
On 2020/05/19 17:14, Hannes Reinecke wrote:
> Hi all,
>
> here's an update to dm-zoned to separate out cache zones.
> In the update to metadata version 2 the regular drive was split
> in emulated zones, which were handled just like 'normal' random
> write zones.
> This causes a performance drop once these emulated zones have
> been mapped, as typicall the random zones from the zoned drive
> will perform noticeably slower than those from the regular drive.
> (After all, that was kinda the idea of using a regular disk in
> the first place ...)
>
> So in this patchset I've introduced a separate 'cache' zone type,
> allowing us to differentiate between emulated and real zones.
> With that we can switch the allocation mode to use only cache
> zones, and use random zones similar to sequential write zones.
> That avoids the performance issue noted above.
>
> I've also found that the sequential write zones perform noticeably
> better on writes (which is all we're caching anyway), so I've
> added another patch switching the allocation routine from preferring
> sequential write zones for reclaim.
>
> This patchset also contains some minor fixes like remving an unused
> variable etc.
>
> As usual, comments and reviews are welcome.
I ran this overnight with no problems. Throughput results attached.
Reclaim seems to be a little too aggressive as it triggers very early. But we
can tune that later if really needed: the combination of ext4 writing all over
the place and the faster cache zones on SSD may simply result in a percentage of
free cache zones becoming low very quickly, in which case, reclaim is working
exactly as expected :)
Mike,
With the NVMe io_opt fix patch applied, the alignment warning for the target
limits is gone.
For the entire series:
Tested-by: Damien Le Moal <damien.lemoal at wdc.com>
>
> Changes to v1:
> - Include reviews from Damien
> - Introduce allocation flags
> - Terminate reclaim on contention
> - Rework original patch series
>
> Hannes Reinecke (6):
> dm-zoned: return NULL if dmz_get_zone_for_reclaim() fails to find a
> zone
> dm-zoned: separate random and cache zones
> dm-zoned: reclaim random zones when idle
> dm-zoned: start reclaim with sequential zones
> dm-zoned: terminate reclaim on congestion
> dm-zoned: remove unused variable in dmz_do_reclaim()
>
> drivers/md/dm-zoned-metadata.c | 140 ++++++++++++++++++++++++++++++-----------
> drivers/md/dm-zoned-reclaim.c | 109 ++++++++++++++++++++------------
> drivers/md/dm-zoned-target.c | 19 ++++--
> drivers/md/dm-zoned.h | 13 +++-
> 4 files changed, 196 insertions(+), 85 deletions(-)
>
--
Damien Le Moal
Western Digital Research
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dm-zoned.png
Type: image/png
Size: 144160 bytes
Desc: dm-zoned.png
URL: <http://listman.redhat.com/archives/dm-devel/attachments/20200519/4d88eabf/attachment.png>
More information about the dm-devel
mailing list