From mboxrd@z Thu Jan 1 00:00:00 1970 From: Matthew Tippett Subject: Re: sync guest calls made async on host - SQLite performance Date: Wed, 07 Oct 2009 17:01:31 -0400 Message-ID: <4ACD01AB.6070903@gmail.com> References: <4ABC6AA5.6080909@tauceti.net> <4ABF4E95.5070100@redhat.com> <4ABF5596.9050207@gmail.com> <4AC259DC.2080807@codemonkey.ws> <4AC260BB.3090906@gmail.com> <4AC27355.3090303@codemonkey.ws> <4ACCC7A1.9060303@gmail.com> <4ACCEC9F.7090309@gmail.com> <4ACCF623.2010900@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Cc: Dustin Kirkland , Anthony Liguori , RW , kvm@vger.kernel.org To: Avi Kivity Return-path: Received: from mail-fx0-f227.google.com ([209.85.220.227]:37801 "EHLO mail-fx0-f227.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934355AbZJGVCM (ORCPT ); Wed, 7 Oct 2009 17:02:12 -0400 Received: by fxm27 with SMTP id 27so5019396fxm.17 for ; Wed, 07 Oct 2009 14:01:35 -0700 (PDT) In-Reply-To: <4ACCF623.2010900@redhat.com> Sender: kvm-owner@vger.kernel.org List-ID: -------- Original Message -------- Subject: Re: sync guest calls made async on host - SQLite performance From: Avi Kivity To: Matthew Tippett Cc: Dustin Kirkland , Anthony Liguori , RW , kvm@vger.kernel.org Date: 10/07/2009 04:12 PM > > What is the data set for this benchmark? If it's much larger than guest > RAM, but smaller than host RAM, you could be seeing the effects of read > caching. 2GB for host, 1.7GB accessible for the guest (although highly unlikely that the memory usage went very high at all. > > Another possiblity is barriers and flushing. > That is what I am expecting, remember that the host and the guest were the same OS, same config, nothing special. So the variable in the mix is how Ubuntu Karmic interacts with the bare metal vs the qemu-kvm virtual metal. The test itself is simply 12500 sequential inserts, designed to model a simple high-transactional load single-tier system. I still have some investigations pending on how sqlite responds at the syscall level, but I believe it is requesting synchronous writes and then doing many writes. The consequence of the structure of the benchmark is that if there is any caching occurring at all from the sqlite library down, then it tends to show. And I believe that it is unexpectedly showing here (since the writes are expected to be synchronous to a physical disk). If there is a clear rationale that the KVM community is comfortable with, then it becomes a distribution or deployment issue relative to data integrity where a synchronous write within a guest may not be synchronous to a physical disk. I assume this would concern commercial and server users of virtual machines. Regards, Matthew