kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Matthew Tippett <tippettm@gmail.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Dustin Kirkland <dustin.kirkland@gmail.com>,
	Avi Kivity <avi@redhat.com>, RW <kvm@tauceti.net>,
	kvm@vger.kernel.org
Subject: Re: sync guest calls made async on host - SQLite performance
Date: Tue, 13 Oct 2009 22:09:43 -0400	[thread overview]
Message-ID: <4AD532E7.2010804@gmail.com> (raw)
In-Reply-To: <4AD50883.1040305@codemonkey.ws>


> No, it's an absurd assessment.
> 
> You have additional layers of caching happening because you're running a 
> guest from a filesystem on the host.

Comments below.

> A benchmark running under a guest that happens do be faster than the 
> host does not indicate anything.  It could be that the benchmark is 
> poorly written.

I believe that I have removed the benchmark from discussion, we are now 
looking at semantics of small writes followed by
> 
> What operation, specifically, do you think is not behaving properly 
> under kvm?  ext4 (karmic's default filesystem) does not enable barriers 
> by default so it's unlikely this is anything barrier related.
>

Re-quoting me from two replies ago.

===
I dug deeper into the actual syscalls being made by sqlite.  The salient 
part of the behaviour is small sequential writes followed by a
fdatasync (effectively a metadata-free fsync).
===

And quoting from Dustin

===
I have tried this, exactly as you have described.  The tests took:

  * 1162.08033204 seconds on native hardware
  * 2306.68306303 seconds in a kvm using if=scsi disk
  * 405.382308006 seconds in a kvm using if=virtio
===

And finally Christoph

===
Can't remember anything like that.  The "bug" was the complete lack of
cache flush infrastructure for virtio, and the lack of advertising a
volative write cache on ide.
===

The _Operation_ that I believe is not behaving as expected is fdatasync 
under virtio. I understand your position that this is not a bug, but a 
configuration/packaging issue.

So I'll put it to you differently.  When a Linux guest issues a fsync or 
fdatasync what should occur?

o If the system has been configured in writeback mode then you don't 
worry about getting the data to the disk, so when the hypervisor has 
received the data, be happy with it.

o If the system is configured in writethrough mode, shouldn't the 
hypervisor look to get the data to disk ASAP?  Whether this is 
immediately, or batched with other data, I'll leave it to you guys.

As mentioned above, I am not saying it is a bug in KVM, and may well be 
a poor choice of configuration options within distributions.  From what 
I can interpret from above, scsi and writethrough is the safest model to 
go for.  By extension, for enterprise workloads where data integrity is 
more critical the default configuration of KVM under Ubuntu and possibly 
other distributions may be a poor choice.

Regards,

Matthew

  reply	other threads:[~2009-10-14  2:10 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-09-25  7:00 sync guest calls made async on host - SQLite performance RW
2009-09-27 11:37 ` Avi Kivity
2009-09-27 12:07   ` Matthew Tippett
2009-09-29 19:02     ` Anthony Liguori
2009-09-29 19:32       ` Matthew Tippett
2009-09-29 20:46         ` Dustin Kirkland
2009-09-29 20:51         ` Anthony Liguori
2009-10-07 14:15           ` Matthew Tippett
2009-10-07 16:53           ` Matthew Tippett
2009-10-07 18:59             ` Dustin Kirkland
2009-10-07 19:31               ` Matthew Tippett
2009-10-07 20:12                 ` Avi Kivity
2009-10-07 21:01                   ` Matthew Tippett
2009-10-09  6:05                 ` Dustin Kirkland
     [not found]                 ` <4ACE0196.9010904@gmail.com>
     [not found]                   ` <d9c105ea0910082312n7218e1abhc69a2be660838e89@mail.gmail.com>
     [not found]                     ` <f28b49ce0910090425p385636c3he6dfb7595927d7e4@mail.gmail.com>
2009-10-09 15:18                       ` Dustin Kirkland
2009-10-09 19:06                         ` Matthew Tippett
2009-10-11  9:16                           ` Avi Kivity
2009-10-13 22:37                             ` Christoph Hellwig
2009-10-14 11:03                               ` Avi Kivity
2009-10-14 12:03                                 ` [PATCH] virtio-blk: fallback to draining the queue if barrier ops are not supported Avi Kivity
2009-10-14 14:46                                   ` Javier Guerra
2009-10-14 16:53                                     ` Avi Kivity
2009-10-14 15:38                                   ` Michael Tokarev
2009-10-14 15:46                                     ` Christoph Hellwig
2009-10-14 13:41                                 ` sync guest calls made async on host - SQLite performance Christoph Hellwig
2009-10-14 16:56                                   ` Avi Kivity
2009-10-14 17:02                                     ` Christoph Hellwig
2009-10-14 22:54                                       ` Anthony Liguori
2009-10-14 23:37                                         ` Avi Kivity
2009-10-15 12:17                                         ` Christoph Hellwig
2009-10-15 12:36                                           ` Christoph Hellwig
2009-10-19  5:56                                           ` Avi Kivity
2009-10-13 23:08                           ` Anthony Liguori
2009-10-14  2:09                             ` Matthew Tippett [this message]
2009-10-14  4:12                               ` Dustin Kirkland
2009-10-14 11:32                                 ` Matthew Tippett
  -- strict thread matches above, loose matches on Subject: below --
2009-09-25  2:11 Ian Woodstock
2009-09-25  3:13 ` Matthew Tippett
2009-09-23 15:58 Matthew Tippett
2009-09-24 11:44 ` Avi Kivity
2009-09-24 12:31   ` Matthew Tippett
2009-09-24 13:03     ` Avi Kivity
2009-09-24 19:49       ` Matthew Tippett
2009-09-25  7:22         ` Avi Kivity
2009-09-25 11:33           ` Matthew Tippett
2009-09-25 15:04             ` Avi Kivity
2009-09-29 18:58             ` Anthony Liguori
2009-09-29 18:57           ` Anthony Liguori
2009-09-29 18:54 ` Anthony Liguori

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=4AD532E7.2010804@gmail.com \
    --to=tippettm@gmail.com \
    --cc=anthony@codemonkey.ws \
    --cc=avi@redhat.com \
    --cc=dustin.kirkland@gmail.com \
    --cc=kvm@tauceti.net \
    --cc=kvm@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).