linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo@cn.fujitsu.com>
To: bo.li.liu@oracle.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 16:33:59 +0800	[thread overview]
Message-ID: <52945CF7.8040801@cn.fujitsu.com> (raw)
In-Reply-To: <20131126073109.GD29771@localhost.localdomain>

On Tue, 26 Nov 2013 15:31:10 +0800, Liu Bo wrote:
> 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
>
Maybe, but has no extra space to verify it.
Also even itisdue to the space,
I still need to check why the original kernel has no such problem...

Anyway thanks for the clue.

Qu

-- 
-----------------------------------------------------
Qu Wenruo
Development Dept.I
Nanjing Fujitsu Nanda Software Tech. Co., Ltd.(FNST)
No. 6 Wenzhu Road, Nanjing, 210012, China
TEL: +86+25-86630566-8526
COINS: 7998-8526
FAX: +86+25-83317685
MAIL: quwenruo@cn.fujitsu.com
-----------------------------------------------------


      reply	other threads:[~2013-11-26  8:33 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
2013-11-26  8:33       ` Qu Wenruo [this message]

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=52945CF7.8040801@cn.fujitsu.com \
    --to=quwenruo@cn.fujitsu.com \
    --cc=bo.li.liu@oracle.com \
    --cc=chris.mason@fusionio.com \
    --cc=linux-btrfs@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).