All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ryan Harper <ryanh@us.ibm.com>
To: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, kvm@vger.kernel.org,
	stefanha@linux.vnet.ibm.com, mtosatti@redhat.com,
	aliguori@us.ibm.com, ryanh@us.ibm.com, zwu.kernel@gmail.com,
	kwolf@redhat.com, luowenj@cn.ibm.com
Subject: Re: [PATCH v3 0/2] The intro for QEMU disk I/O limits
Date: Sun, 31 Jul 2011 14:09:03 -0500	[thread overview]
Message-ID: <20110731190903.GG1024@us.ibm.com> (raw)
In-Reply-To: <1311850166-9404-1-git-send-email-wuzhy@linux.vnet.ibm.com>

* Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> [2011-07-28 05:53]:
> The main goal of the patch is to effectively cap the disk I/O speed or counts of one single VM.It is only one draft, so it unavoidably has some drawbacks, if you catch them, please let me know.
> 
> The patch will mainly introduce one block I/O throttling algorithm, one timer and one block queue for each I/O limits enabled drive.
> 
> When a block request is coming in, the throttling algorithm will check if its I/O rate or counts exceed the limits; if yes, then it will enqueue to the block queue; The timer will periodically handle the I/O requests in it.
> 
> Some available features follow as below:
> (1) global bps limit.
>     -drive bps=xxx            in bytes/s
> (2) only read bps limit
>     -drive bps_rd=xxx         in bytes/s
> (3) only write bps limit
>     -drive bps_wr=xxx         in bytes/s
> (4) global iops limit
>     -drive iops=xxx           in ios/s
> (5) only read iops limit
>     -drive iops_rd=xxx        in ios/s
> (6) only write iops limit
>     -drive iops_wr=xxx        in ios/s
> (7) the combination of some limits.
>     -drive bps=xxx,iops=xxx
> 
> Known Limitations:
> (1) #1 can not coexist with #2, #3
> (2) #4 can not coexist with #5, #6
> (3) When bps/iops limits are specified to a small value such as 511 bytes/s, this VM will hang up. We are considering how to handle this senario.
> 

I don't yet have detailed info , but we've got a memory leak in the
code.  After running the VM with a 1MB r and w limit for 8 hours or
so:

-drive bps_rd=$((1*1024*1024)),bps_wr=$((1*1024*1024))

I've got my system swapping with 43G resident in memory:

9913 root      20   0 87.3g  43g  548 D  9.6 34.5  44:00.87 qemu-system-x86


would be worth looking through the code and maybe a valgrind run to
catch the leak.


-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh@us.ibm.com

WARNING: multiple messages have this Message-ID (diff)
From: Ryan Harper <ryanh@us.ibm.com>
To: Zhi Yong Wu <wuzhy@linux.vnet.ibm.com>
Cc: kwolf@redhat.com, aliguori@us.ibm.com,
	stefanha@linux.vnet.ibm.com, kvm@vger.kernel.org,
	mtosatti@redhat.com, qemu-devel@nongnu.org, zwu.kernel@gmail.com,
	ryanh@us.ibm.com, luowenj@cn.ibm.com
Subject: Re: [Qemu-devel] [PATCH v3 0/2] The intro for QEMU disk I/O limits
Date: Sun, 31 Jul 2011 14:09:03 -0500	[thread overview]
Message-ID: <20110731190903.GG1024@us.ibm.com> (raw)
In-Reply-To: <1311850166-9404-1-git-send-email-wuzhy@linux.vnet.ibm.com>

* Zhi Yong Wu <wuzhy@linux.vnet.ibm.com> [2011-07-28 05:53]:
> The main goal of the patch is to effectively cap the disk I/O speed or counts of one single VM.It is only one draft, so it unavoidably has some drawbacks, if you catch them, please let me know.
> 
> The patch will mainly introduce one block I/O throttling algorithm, one timer and one block queue for each I/O limits enabled drive.
> 
> When a block request is coming in, the throttling algorithm will check if its I/O rate or counts exceed the limits; if yes, then it will enqueue to the block queue; The timer will periodically handle the I/O requests in it.
> 
> Some available features follow as below:
> (1) global bps limit.
>     -drive bps=xxx            in bytes/s
> (2) only read bps limit
>     -drive bps_rd=xxx         in bytes/s
> (3) only write bps limit
>     -drive bps_wr=xxx         in bytes/s
> (4) global iops limit
>     -drive iops=xxx           in ios/s
> (5) only read iops limit
>     -drive iops_rd=xxx        in ios/s
> (6) only write iops limit
>     -drive iops_wr=xxx        in ios/s
> (7) the combination of some limits.
>     -drive bps=xxx,iops=xxx
> 
> Known Limitations:
> (1) #1 can not coexist with #2, #3
> (2) #4 can not coexist with #5, #6
> (3) When bps/iops limits are specified to a small value such as 511 bytes/s, this VM will hang up. We are considering how to handle this senario.
> 

I don't yet have detailed info , but we've got a memory leak in the
code.  After running the VM with a 1MB r and w limit for 8 hours or
so:

-drive bps_rd=$((1*1024*1024)),bps_wr=$((1*1024*1024))

I've got my system swapping with 43G resident in memory:

9913 root      20   0 87.3g  43g  548 D  9.6 34.5  44:00.87 qemu-system-x86


would be worth looking through the code and maybe a valgrind run to
catch the leak.


-- 
Ryan Harper
Software Engineer; Linux Technology Center
IBM Corp., Austin, Tx
ryanh@us.ibm.com

  parent reply	other threads:[~2011-07-31 19:09 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-07-28 10:49 [PATCH v3 0/2] The intro for QEMU disk I/O limits Zhi Yong Wu
2011-07-28 10:49 ` [Qemu-devel] " Zhi Yong Wu
2011-07-28 10:49 ` [PATCH v3 1/2] The command line support " Zhi Yong Wu
2011-07-28 10:49   ` [Qemu-devel] " Zhi Yong Wu
2011-07-28 10:49 ` [PATCH v3 2/2] The implement of block queue, block timer, and I/O throttling algorithm Zhi Yong Wu
2011-07-28 10:49   ` [Qemu-devel] " Zhi Yong Wu
2011-07-31 19:09 ` Ryan Harper [this message]
2011-07-31 19:09   ` [Qemu-devel] [PATCH v3 0/2] The intro for QEMU disk I/O limits Ryan Harper
2011-08-01  6:37   ` Zhi Yong Wu
2011-08-01  6:37     ` [Qemu-devel] " Zhi Yong Wu

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=20110731190903.GG1024@us.ibm.com \
    --to=ryanh@us.ibm.com \
    --cc=aliguori@us.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=kwolf@redhat.com \
    --cc=luowenj@cn.ibm.com \
    --cc=mtosatti@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=wuzhy@linux.vnet.ibm.com \
    --cc=zwu.kernel@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 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.