From: Liu Bo <bo.li.liu@oracle.com>
To: Qu Wenruo <quwenruo@cn.fujitsu.com>
Cc: Chris Mason <chris.mason@fusionio.com>, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH v3 00/17] Replace btrfs_workers with kernel workqueue based btrfs_workqueue_struct
Date: Tue, 26 Nov 2013 15:31:10 +0800 [thread overview]
Message-ID: <20131126073109.GD29771@localhost.localdomain> (raw)
In-Reply-To: <5293FBEF.6050309@cn.fujitsu.com>
On Tue, Nov 26, 2013 at 09:39:59AM +0800, Qu Wenruo wrote:
> On Thu, 7 Nov 2013 12:54:56 -0500, Chris Mason wrote:
> >Quoting Qu Wenruo (2013-11-07 00:51:50)
> >>Add a new btrfs_workqueue_struct which use kernel workqueue to implement
> >>most of the original btrfs_workers, to replace btrfs_workers.
> >>
> >>With this patchset, redundant workqueue codes are replaced with kernel
> >>workqueue infrastructure, which not only reduces the code size but also the
> >>effort to maintain it.
> >>
> >>More performace tests are ongoing, the result from sysbench shows minor
> >>improvement on the following server:
> >>CPU: two-way Xeon X5660
> >>RAM: 4G
> >>HDD: SAS HDD, 150G total, 40G partition for btrfs test
> >>
> >>Test result:
> >>Mode|Num_threads|block size|extra flags|performance change vs 3.11 kernel
> >>rndrd 1 4K none +1.22%
> >>rndrd 1 32K none +1.00%
> >>rndrd 8 32K sync +1.35%
> >>seqrd 8 4K direct +5.56%
> >>seqwr 8 4K none -1.26%
> >>seqwr 8 32K sync +1.20%
> >>
> >>Changes below 1% are not mentioned.
> >>Overall the patchset doesn't change the performance on HDD.
> >>
> >>Since more tests are needed, more test result are welcomed.
> >Thanks for working on this, it's really good to move toward a single set
> >of workqueues in the kernel.
> >
> >Have you benchmarked with compression on? Especially on modern
> >hardware, the crcs don't exercise the workqueues very much.
> >
> >-chris
> >
> The result with compression on is quite interesting.
> Overall minor improvement in random read,
> mixed but still minor changes in sequence write.
> Some impressive improvement and small regression in random write,
> as well as some improvement in sequence write.
>
> But overall, test result with compression is not as stable as the
> ones without compression,(some result data can change up to 15%
> using the same kernel)
> and the result seems good overall, even with some regression in some tests.
>
> I think the test machine should be modern enough as the following.
> CPU: Two way Xeon X5660 @ 2.80GHz(24 cores when full load)
> RAM: 4G(with mem=4G in kernel cmdline, physical RAM is 8G)
> HDD: SAS 150G HDD, test btrfs partition is 40G
>
> The detail test result is like the following:(Only changes over 1%
> is mentioned)
>
> Mode|Num_threads|block size|extra flags|performance change vs 3.11 kernel
> rndrd 1 32K async +1.98%
> rndrd 1 32K none +2.77%
> rndrd 8 4K async +5.16%
> rndrd 8 4K none +5.57%
> rndrd 8 32K async +5.11%
> seqrd 1 4K none +3.84%
> seqrd 1 32K async -2.84%
> seqrd 1 32K none +1.87%
> seqrd 8 4K none +4.75%
> seqrd 8 32K async +1.02%
> seqrd 8 32K none -1.38%
> rndwr 1 4K direct -7.84%
> rndwr 1 4K none +30.21% (*1)
> rndwr 1 32K async -7.84%
> rndwr 1 32K none -1.59%
> rndwr 8 4K async +32.60% (*2)
> rndwr 8 4K none +20.34% (*3)
> rndwr 8 32K async +1.06%
> rndwr 8 32K none -14.64% (*4)
> seqwr 1 4K async -1.87%
> seqwr 1 4K none +4.65%
> seqwr 1 32K async +1.72%
> seqwr 1 32K none +9.65%
> seqwr 8 4K async +6.47%
> seqwr 8 4K none -6.38%
> seqwr 8 32K async +15.14%
> seqwr 8 32K none +9.38%
>
> *1: The data on original kernel changes between 35~45MBytes/s,
> But on the patched kernel, the result tends to get a result of 70MBytes/s(about 50% chance),
> but sometimes, the result can also drops to the 35~45MBytes/s.(50% chance)
>
> *2: Much like *1, with patched kernel, result is more unstable and has a high chance to
> get a better result. Even the worst result with patched kernel, the data is still on par
> with the original kernel.
>
> *3: Much like *1 or *2, this time, the original kernel also have a chance to get a better result,
> but the possibility is much smaller than the patched kernel.
>
> *4: Sadly, this time the patched kernel is more unstable and has a high chance to get a worse result.
>
> *1~*4 only differ in the chance of unstable good/bad data, and the stable data seems on par.
Can you verify if this is caused by overcommit stuff?
Not sure if 40G is large enough to meet the metadata creation.
thanks,
-liubo
next prev parent reply other threads:[~2013-11-26 7:31 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-11-07 5:51 [PATCH v3 00/17] Replace btrfs_workers with kernel workqueue based btrfs_workqueue_struct Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 01/17] btrfs: Cleanup the unused struct async_sched Qu Wenruo
2013-11-07 17:24 ` Josef Bacik
2013-11-07 5:51 ` [PATCH v3 02/17] btrfs: Added btrfs_workqueue_struct implemented ordered execution based on kernel workqueue Qu Wenruo
2013-11-07 9:33 ` Stefan Behrens
2013-11-07 16:05 ` David Sterba
2013-11-08 0:32 ` Qu Wenruo
2013-11-07 18:08 ` Josef Bacik
2013-11-07 18:09 ` Josef Bacik
2013-11-08 0:58 ` Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 03/17] btrfs: Add high priority workqueue support for btrfs_workqueue_struct Qu Wenruo
2013-11-07 16:41 ` David Sterba
2013-11-08 0:53 ` Qu Wenruo
2013-11-12 16:59 ` David Sterba
2013-11-13 0:53 ` Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 04/17] btrfs: Add threshold workqueue based on kernel workqueue Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 05/17] btrfs: Replace fs_info->workers with btrfs_workqueue Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 06/17] btrfs: Replace fs_info->delalloc_workers " Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 07/17] btrfs: Replace fs_info->submit_workers " Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 08/17] btrfs: Replace fs_info->flush_workers " Qu Wenruo
2013-11-07 5:51 ` [PATCH v3 09/17] btrfs: Replace fs_info->endio_* workqueue " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 10/17] btrfs: Replace fs_info->rmw_workers " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 11/17] btrfs: Replace fs_info->cache_workers " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 12/17] btrfs: Replace fs_info->readahead_workers " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 13/17] btrfs: Replace fs_info->fixup_workers " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 14/17] btrfs: Replace fs_info->delayed_workers " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 15/17] btrfs: Replace fs_info->qgroup_rescan_worker " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 16/17] btrfs: Replace fs_info->scrub_* " Qu Wenruo
2013-11-07 5:52 ` [PATCH v3 17/17] btrfs: Cleanup the old btrfs_worker Qu Wenruo
2013-11-07 17:52 ` [PATCH v3 00/17] Replace btrfs_workers with kernel workqueue based btrfs_workqueue_struct David Sterba
2013-11-08 0:55 ` Qu Wenruo
2013-11-07 17:54 ` Chris Mason
2013-11-08 0:56 ` Qu Wenruo
2013-11-26 1:39 ` Qu Wenruo
2013-11-26 7:31 ` Liu Bo [this message]
2013-11-26 8:33 ` Qu Wenruo
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=20131126073109.GD29771@localhost.localdomain \
--to=bo.li.liu@oracle.com \
--cc=chris.mason@fusionio.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=quwenruo@cn.fujitsu.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;
as well as URLs for NNTP newsgroup(s).