Re: using fio to test btrfs compression

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2017-09-20 13:13 GMT+03:00 shally verma <shallyvermacavium@xxxxxxxxx>:
> On Wed, Sep 20, 2017 at 3:06 PM, Timofey Titovets <nefelim4ag@xxxxxxxxx> wrote:
>> 2017-09-20 11:59 GMT+03:00 shally verma <shallyvermacavium@xxxxxxxxx>:
>>> On Wed, Sep 20, 2017 at 2:25 PM, Timofey Titovets <nefelim4ag@xxxxxxxxx> wrote:
>>>> 2017-09-20 11:44 GMT+03:00 shally verma <shallyvermacavium@xxxxxxxxx>:
>>>>> One more catch... I am initiating fio from non-btrfs filesystem i.e.
>>>>> pwd is ext4 based fs where as mount point is btrfs.
>>>>> Could that make difference?
>>>>>
>>>>>> Thanks
>>>>>> Shally
>>>>
>>>> Only matter are where you store test file =)
>>>> If you store test file on btrfs, pwd does nothing.
>>>>
>>>
>>> Then steps listed in previous mail should work right?  Am listing them
>>> again here:
>>>
>>> " ----
>>>>
>>>> 1. mount -t btrfs -o compress-force=zlib /dev/sdb1 mnt
>>>>
>>>> 2. fio --directory=mnt/ --numjobs=1 --direct=0 --buffered=1 --bs=64k
>>>> --rw=write --iodepth=128 --name=test --size=1G
>>>> --buffer_compress_percentage=100 --buffer_pattern=0xFF --refill_buffer
>>>> --ioengine=libaio
>>>>
>>>> 1GN file written uncompressed. Here no compression invoked (though
>>>> compress-force=zlib)
>>>>
>>>> 3. cp mnt/test ./ --> copy back fio generated test file from btrfs
>>>> mount point to local drive
>>>>
>>>> 4. hex dump test file (all FFs) -- confirmed that data is compressible
>>>> no random data.
>>>>
>>>> 5. cp test mnt/  --> now, copy same test again back to mount point
>>>> (reverse of step 3) . Now, here I see during copying compression is
>>>> invoked.
>>>>
>>>> I am using kernel 4.9 and compress-foce is said to be working for
>>>> kernel > 2.13 from wiki ... so I wonder what's so special with cp
>>>> command which is not happening during fio writes???
>>>
>>> "-----
>>>
>>> Thanks
>>> Shally
>>>
>>>
>>>> --
>>>> Have a nice day,
>>>> Timofey.
>>
>> I did try reproduce your problem on 4.14, i'm hard to explain that
>> happens and why file created by FIO will not use compression.
>>
>> Suggest workaround:
>> rm -v /mnt/test.0.0
>> dd if=/dev/zero of=/mnt/test.0.0 bs=1M count=1024
>
> You mean "compression" using "dd" write.
>
>> fio --directory=$HOME/test/ --numjobs=1 --direct=1 --buffered=0
>> --bs=64k --rw=write --iodepth=128 --name=test --size=1G
>> --buffer_compress_percentage=100 --buffer_pattern=0xFF --refill_buffer
>> --ioengine=libaio
>
> You mean "no compression" during fio writes and you see similar behavior as I?
> BTW here --direct=0 and --buffered = 1.
>
>>
>> You can check if data compressed by filefrag -v /mnt/test.0.0 (you
>> will see encoded extents)
>>
> if I do filefrag on mnt/test.0.0, then it shows up like this:
> ext:     logical_offset:        physical_offset: length:   expected: flags:
>    0:        0..       1:    1329922..   1329923:      2:
>    1:        2..       3:    1329923..   1329924:      2:    1329924:
>    2:        4..       5:    1329924..   1329925:      2:    1329925:
>
> An new to this, how does it says extents are encoded here?
>
> Thanks
> Shally
>
>> --
>> Have a nice day,
>> Timofey.

Yes, i was reproduce your problem, new file created by fio not compressed.
So i write you about workaround, because i don't want to deep dig in
that problem.

Example of encoded:
~ dd if=/dev/zero of=./test.0.0 bs=1M count=1M count=1; sync
~ filefrag -v test.0.0
Filesystem type is: 9123683e
File size of test.0.0 is 1048576 (256 blocks of 4096 bytes)
ext:     logical_offset:        physical_offset: length:   expected: flags:
  0:        0..      31:   72779979..  72780010:     32:             encoded
  1:       32..      63:   72751509..  72751540:     32:   72780011: encoded
  2:       64..      95:   72755246..  72755277:     32:   72751541: encoded
  3:       96..     127:   72755610..  72755641:     32:   72755278: encoded
  4:      128..     159:   72755631..  72755662:     32:   72755642: encoded
  5:      160..     191:   72755722..  72755753:     32:   72755663: encoded
  6:      192..     223:   72757862..  72757893:     32:   72755754: encoded
  7:      224..     255:   72769455..  72769486:     32:   72757894:
last,encoded,eof
test.0.0: 8 extents found

-- 
Have a nice day,
Timofey.
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux