Flexible I/O Tester development
 help / color / mirror / Atom feed
From: Vladislav Bolkhovitin <vst@vlnb.net>
To: Jens Axboe <axboe@kernel.dk>, Sitsofe Wheeler <sitsofe@gmail.com>
Cc: "fio@vger.kernel.org" <fio@vger.kernel.org>
Subject: Re: Fio high IOPS measurement mistake
Date: Fri, 04 Mar 2016 16:47:14 -0800	[thread overview]
Message-ID: <56DA2C92.5030508@vlnb.net> (raw)
In-Reply-To: <56D9AADC.3070600@kernel.dk>

Jens Axboe wrote on 03/04/2016 07:33 AM:
> On 03/03/2016 09:37 PM, Vladislav Bolkhovitin wrote:
>> Jens Axboe wrote on 03/03/2016 08:20 AM:
>>> On Thu, Mar 03 2016, Sitsofe Wheeler wrote:
>>>> On 3 March 2016 at 03:03, Vladislav Bolkhovitin <vst@vlnb.net> wrote:
>>>>> For those who asked about perf profiling, it remained the same as before with the CPU
>>>>> consumption is all about timekeeping and memset:
>>>>>
>>>>> -  55.74%  fio  fio                [.] clock_thread_fn
>>>>>       clock_thread_fn
>>>>
>>>> Perhaps this is what is already included above but could you use the
>>>> -g option on perf to collect it into a call-graph and post the top
>>>> results?
>>>
>>> The above looks like a side effect of using gtod_cpu, it'll burn one
>>> core. For the original poster - did you verify whether using gtod_cpu
>>> was faster than using the CPU clock source in each CPU?
>>
>> Yes, I had verified it and mentioned in one of my reports. It slightly decreased the
>> IOPS. I guess, it's a locking contention somewhere.
> 
> For clocksource=cpu there is no internal fio contention, nor can there be any kernel/OS
> contention. Getting the clock is serializing, so that might slow things down a bit.

Yes. Also, there might be a cache contention here, with one thread writing to a memory
location and multiple threads reading from it. The same type of contention why queue
spinlocks are faster, than ticket spinlocks.

> I've seen you bring up this contention idea before. 

Yes, it was when I forgot to short circuit lseek calls in the sync engine. Usually, if
you see performance dropping from certain number of threads, it is safe to guess there
is a lock contention somewhere.

> Is that pure guesswork on your end, or have you profiled any contention?

Pure guesswork. I'm looking at fio in details only few days, so it is still pretty much
a black box for me. Generally, if you see performance drop with another thread, it must
be either locks contention, or communication overhead. Nowadays the former is more
common, hence the guess.

Thanks,
Vlad

> For most fio workloads there is no cross-job
> traffic, that's by design. Fio does add some overhead in general (everything does), and
> some of it is opt-out like cutting down on the number of time calls (gtod_cpu). But
> that's different from any locking contention between jobs, since it's constant and
> isn't affected by how you spread the workloads.
> 



  reply	other threads:[~2016-03-05  0:47 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-01  5:17 Fio high IOPS measurement mistake Vladislav Bolkhovitin
2016-03-01  6:01 ` Sitsofe Wheeler
2016-03-02  4:25   ` Vladislav Bolkhovitin
2016-03-02  7:38     ` Sitsofe Wheeler
2016-03-03  3:02       ` Vladislav Bolkhovitin
2016-03-02 18:37     ` Elliott, Robert (Persistent Memory)
2016-03-03  3:03       ` Vladislav Bolkhovitin
2016-03-03 21:03         ` Elliott, Robert (Persistent Memory)
2016-03-04  4:36           ` Vladislav Bolkhovitin
2016-03-03  3:03     ` Vladislav Bolkhovitin
2016-03-03  7:10       ` Sitsofe Wheeler
2016-03-03  7:13         ` Sitsofe Wheeler
2016-03-04  4:37           ` Vladislav Bolkhovitin
2016-03-03 16:20         ` Jens Axboe
2016-03-04  4:37           ` Vladislav Bolkhovitin
2016-03-04 15:33             ` Jens Axboe
2016-03-05  0:47               ` Vladislav Bolkhovitin [this message]
2016-03-05  0:54                 ` Jens Axboe
2016-03-05  1:09                   ` Vladislav Bolkhovitin
2016-03-04  4:37         ` Vladislav Bolkhovitin
2016-03-02  8:26 ` Andrey Kuzmin
2016-03-03  3:02   ` Vladislav Bolkhovitin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56DA2C92.5030508@vlnb.net \
    --to=vst@vlnb.net \
    --cc=axboe@kernel.dk \
    --cc=fio@vger.kernel.org \
    --cc=sitsofe@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox