<div dir="ltr">Hi Zdenek,<div>Thanks for the reply.<br>I have confirmation on the Zeroing of thin chunks, they are disabled.</div><div>And I followed it up further to post additional details I collected on the same write performance issue.<br><br>The summary is, for buffered IO there seems to be way more IOs queued than by the configured limit (queue/nr_requests).<br>The thin dm device is not honouring this limit and has so many excess IO in flight, that any sync IO eventually stalls for a very long time.<br><br>The details are in the thread. Can you confirm if this is a known issue? And what workaround would you suggest?<br>If not pointers, to possible areas to explore?</div><div><br>Regards<br><br><br><br><br><br><br><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Dec 6, 2021 at 7:27 PM Zdenek Kabelac <<a href="mailto:zdenek.kabelac@gmail.com">zdenek.kabelac@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Dne 06. 12. 21 v 7:11 Lakshmi Narasimhan Sundararajan napsal(a):<br>
> Bumping this thread, any inputs would be appreciated.<br>
> <br>
>>>>> Do you measure writes while provisioning thin chunks or on already provisioned<br>
>>>>> device?<br>
>>>>><br>
>>>><br>
>>>> Hi Zdenek,<br>
>>>> These are traditional HDDs. Both the thin pool data/metadata reside on<br>
>>>> the same set of drive(s).<br>
>>>> I understand where you are going with this, I will look further into<br>
>>>> defining the hardware/disk before I bring it to your attention.<br>
>>>><br>
>>>> This run was not on an already provisioned device. I do see improved<br>
>>>> performance of the same volume after the first write.<br>
>>>> I understand this perf gain to be the overhead that is avoided during<br>
>>>> the subsequent run where no mappings need to be established.<br>
>>>><br>
>>>> But, you mentioned zeroing of provisioned blocks as an issue.<br>
>>>> 1/ during lvcreate -Z from the man pages reports only controls the<br>
>>>> first 4K block. And also implies this is a MUST otherwise fs may hang.<br>
>>>> So, we are using this. Are you saying this controls zeroing of each<br>
>>>> chunk that's mapped to the thin volume?<br>
<br>
Yes - for 'lvcreate --type thin-pool' the option -Z controls 'zeroing' of <br>
thin-pool's thin volumes<br>
<br>
The bigger the chunks are, the bigger the impact of zeroing will be.<br>
<br>
<br>
>>>><br>
>>>> 2/ The other about zeroing all the data chunks mapped to the thin<br>
>>>> volume, I could see only reference in the lvm.conf under<br>
>>>> thin_pool_zero,<br>
>>>> This is default enabled. So are you suggesting I disable this?<br>
<br>
If you don't need it - disable it - it's kind of more secure to have it <br>
enabled - but if you use 'filesystem' like  ext4 on top - zeroing doesn't help <br>
as user of filesystem cannot read unwritten data. However if you read<br>
device as root - you might be able to read 'stale' data from unwritten parts <br>
of data from provisioned chunks.<br>
<br>
<br>
>>>><br>
>>>> Please confirm the above items. I will come back with more precise<br>
>>>> details on the details you had requested for.<br>
>>>><br>
<br>
<br>
As a side note - metadata device should preferabl sit on different spindle <br>
(SSD, nvme,...) as this is high-bandwith device and might frequently collide <br>
with your  _tdata volume writes.<br>
<br>
Regrards<br>
<br>
Zdenek<br>
</blockquote></div>