On Thu 13 Apr 2017 03:09:53 PM CEST, Denis V. Lunev wrote:
>>> For nowadays SSD we are facing problems somewhere else. Right now I
>>> can achieve only 100k IOPSes on SSD capable of 350-550k. 1 Mb block
>>> with preallocation and fragmented L2 cache gives same 100k. Tests
>>> for initially empty image gives around 80k for us.
>> Preallocated images aren't particularly interesting to me. qcow2 is
>> used mainly for two reasons. One of them is sparseness (initially
>> small file size) mostly for desktop use cases with no serious I/O, so
>> not that interesting either. The other one is snapshots, i.e. backing
>> files, which doesn't work with preallocation (yet).
>>
>> Actually, preallocation with backing files is something that
>> subclusters would automatically enable: You could already reserve the
>> space for a cluster, but still leave all subclusters marked as
>> unallocated.
>
> I am spoken about fallocate() for the entire cluster before actual
> write() for originally empty image. This increases the performance of
> 4k random writes 10+ times. In this case we can just write those 4k
> and do nothing else.

You're talking about using fallocate() for filling a cluster with zeroes
before writing data to it.

As noted earlier in this thread, this works if the image is empty or if
it doesn't have a backing file.

And if the image is not empty you cannot guarantee that the cluster
contains zeroes (you can use FALLOC_FL_ZERO_RANGE, but that won't work
in all cases).

Berto

Reply via email to