Re: Mention of fio by Apple

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

 



On 11/8/18 1:09 PM, Sebastien Boisvert wrote:
> 
> 
> On 2018-11-07 3:57 p.m., Jens Axboe wrote:
>> On 11/5/18 8:00 AM, Sebastien Boisvert wrote:
>>>
>>>
>>> On 2018-11-04 5:44 a.m., Sitsofe Wheeler wrote:
>>>> Looks like someone is referencing an fio benchmark result on Apple's
>>>> Mac Mini page and whoever did it took care to respect the Moral
>>>> License (https://fio.readthedocs.io/en/latest/fio_doc.html#moral-license
>>>> ). From https://www.apple.com/mac-mini/ :
>>>>
>>>> "4. Testing conducted by Apple in October 2018 using preproduction
>>>> 3.2GHz 6-core Intel Core i7-based Mac mini systems with 64GB of RAM
>>>> and 1TB SSD, and shipping 3.0GHz dual-core Intel Core i7-based Mac
>>>> mini systems with 16GB of RAM and 1TB SSD. Tested with FIO 3.8, 1024KB
>>>> request size, 150GB test file and IO depth=8. Performance tests are
>>>> conducted using specific computer systems and reflect the approximate
>>>> performance of Mac mini."
>>>>
>>>> My only question is: as the depth was 8 were they using the posixaio engine?
>>>>
>>>
>>> The foot note number 4 supports this claim:
>>>
>>>     "Up to 4X faster read speed"
>>>
>>> It would make sense to use asynchronous I/O since ioengine=psync is the default on Mac.
>>
>> I'd be fine making that change, if someone can benchmark psync vs posixaio
>> in terms of latency in that platform.
>>
>> Might also make sense to improve the setup so that we have a default
>> engine per OS depending on iodepth. For instance, on Linux, QD=1 should
>> just be psync. But if QD > 1, then we should default to libaio. I'm
>> afraid lots of folks have run iodepth=32 or whatever without changing
>> the IO engine and wondering what is going on.
> 
> Would this change be *after* parse_options() has been called ?
> 
> I looked at init.c and options.{h,c}.

Right now we use FIO_PREFERRED_ENGINE to set the default engine, which
can be defined by the platform. I think we should drop that, don't set
a default, and instead add some logic to eg fixup_options() that sets
the preferred engine based on platform and depth. Probably want
platforms to define

FIO_PREF_SYNC_ENGINE
FIO_PREF_ASYNC_ENGINE

and just pick one of those depending on iodepth. Something like that.

-- 
Jens Axboe




[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux