This patchset improve the latency of the space reservation when doing the
delalloc inode flush. As we know, the current code would wait for
the completion all the ordered extents in the filesystem. It was unnecessary,
we can finish the wait and try to do reservation once again earlier if we
get enough free space. It can reduce the wait time and make the perfermance
up.
We did the buffered write test by the sysbench on my box, the following
is the result.
Memory: 2GB
CPU: 2Cores * 1CPU
Partition: 20GB(SSD)
w/ w/o
rndwr-512KB-1Thread-2GB 120.38MB/s 110.08MB/s
rndwr-512KB-8Threads-2GB 119.43MB/s 110.96MB/s
seqwr-512KB-1Thread-2GB 99.676MB/s 98.53MB/s
seqwr-512KB-8Threads-2GB 111.79MB/s 99.176MB/s
rndwr-128KB-1Thread-2GB 139.23MB/s 95.864MB/s
rndwr-128KB-8Threads-2GB 126.16MB/s 96.686MB/s
seqwr-128KB-1Thread-2GB 100.24MB/s 100.95.MB/s
seqwr-128KB-8Threads-2GB 126.51MB/s 100.26MB/s
rndwr: random write test
seqwr: sequential write test
512KB,128KB: the size of each request
1Thread, 8Threads: the number of the test threads
2GB: The total file size
Miao Xie (7):
Btrfs: remove unnecessary initialization and memory barrior in
shrink_delalloc()
Btrfs: wait for the ordered extent only when we want
Btrfs: pick up the code for the item number calculation in flush_space()
Btrfs: fix the confusion between delalloc bytes and metadata bytes
Btrfs: don't wait for all the async delalloc when shrinking delalloc
Btrfs: don't wait for the completion of all the ordered extents
Btrfs: rename btrfs_start_all_delalloc_inodes
fs/btrfs/ctree.h | 3 +--
fs/btrfs/dev-replace.c | 6 ++---
fs/btrfs/extent-tree.c | 62 ++++++++++++++++++++++++++++++++++---------------
fs/btrfs/inode.c | 3 +--
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/ordered-data.c | 22 ++++++++++++++----
fs/btrfs/ordered-data.h | 4 ++--
fs/btrfs/relocation.c | 4 ++--
fs/btrfs/super.c | 2 +-
fs/btrfs/transaction.c | 4 ++--
10 files changed, 73 insertions(+), 39 deletions(-)
--
1.8.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html