All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jens Axboe <axboe@kernel.dk>
To: brian arb <brianjamesarb@gmail.com>
Cc: fio@vger.kernel.org
Subject: Re: fio is being killed by the oom-killer after fio verify runs for some time ~13 hours
Date: Wed, 23 Jan 2013 11:21:00 -0700	[thread overview]
Message-ID: <20130123182100.GC30268@kernel.dk> (raw)
In-Reply-To: <20130121212925.GA1300@kernel.dk>

On Mon, Jan 21 2013, Jens Axboe wrote:
> On Fri, Jan 18 2013, Jens Axboe wrote:
> > On Fri, Jan 18 2013, brian arb wrote:
> > > adding the option --verify_backlog=1024 resolved my issue.
> > > On a side note how would one determine what the optimum number is for this
> > > option?
> > 
> > It's easier if you know the internals... The version you are running
> > will store some metadata for each block written, for verification
> > purposes. Standard install is 80 bytes per block. So if you have a 2TB
> > disk and use 4K IO sizes, the memory required runs into the gigabytes.
> > Quite unfortunate, really, will be fixed up shortly.
> > 
> > In any case, with a backlog of just 1024, you wont use more than 80KB
> > memory for verifies. So you could easily size it larger. I'd improve the
> > option documentation, but I think it's better to just improve fio to not
> > require the stored meta data to be able to verify. It will be in the
> > 2.0.14 release.
> 
> Current -git has it implemented. If you do your normal verify workload
> but add --experimental_verify=1 to the options, it wont track meta data
> needed for verify, but rather just re-wind the various attributes to
> replay the workload for read and verify instead. Just tested it on one
> box here, bringing the needed memory down for a job from 25G to 1M. The
> worst part about the verify memory consumption was the slowly growing
> job, meaning that it could have the OOM consequences that you described
> for long running jobs. No allocations are taking place for IO when
> experimental_verify is set now.
> 
> Side note, this doesn't work for mixed write/trim workloads for now. We
> need a bit of extra tracking for that.

Final bits are in now, works for both trim and mixed workloads etc. So
to recap, testing now with minimal mem pressure does not need
verify_backlog= being set. Suggested new parameters:

--experimental_verify=1 --random_generator=lfsr

if you could try that and report back if things ran successfully, I
would much appreciate it.

-- 
Jens Axboe


  reply	other threads:[~2013-01-23 18:21 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-01-10 20:57 fio is being killed by the oom-killer after fio verify runs for some time ~13 hours brian arb
2013-01-10 21:09 ` Chris Worley
2013-01-11  9:10 ` Jens Axboe
2013-01-12  8:51   ` Jens Axboe
2013-01-18 17:25     ` brian arb
2013-01-18 20:40       ` Jens Axboe
2013-01-21 21:29         ` Jens Axboe
2013-01-23 18:21           ` Jens Axboe [this message]
2013-01-23 18:52             ` brian arb
2013-01-25 20:03             ` brian arb
2013-01-25 20:06               ` brian arb
2013-01-25 21:22               ` Jens Axboe
2013-01-25 21:28                 ` brian arb

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=20130123182100.GC30268@kernel.dk \
    --to=axboe@kernel.dk \
    --cc=brianjamesarb@gmail.com \
    --cc=fio@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.