[Virtio-fs] [PATCH v5 0/2] virtiofsd: Improve io bandwidth by replacing pwrite with pwritev
piaojun
piaojun at huawei.com
Thu Aug 15 00:54:16 UTC 2019
>From my test, write bandwidth will be improved greatly by replacing
pwrite with pwritev, and the test result as below:
---
pwrite:
# fio -direct=1 -time_based -iodepth=64 -rw=randwrite -ioengine=libaio -bs=1M -size=1G -numjob=16 -runtime=30 -group_reporting -name=file -filename=/mnt/virtiofs/file
file: (g=0): rw=randwrite, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=64
...
fio-2.13
Starting 16 processes
Jobs: 16 (f=16): [w(16)] [100.0% done] [0KB/886.0MB/0KB /s] [0/886/0 iops] [eta 00m:00s]
file: (groupid=0, jobs=16): err= 0: pid=5799: Tue Aug 6 18:48:26 2019
write: io=26881MB, bw=916988KB/s, iops=895, runt= 30018msec
pwritev:
# fio -direct=1 -time_based -iodepth=64 -rw=randwrite -ioengine=libaio -bs=1M -size=1G -numjob=16 -runtime=30 -group_reporting -name=file -filename=/mnt/virtiofs/file
file: (g=0): rw=randwrite, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=64
...
fio-2.13
Starting 16 processes
Jobs: 16 (f=16): [w(16)] [100.0% done] [0KB/1793MB/0KB /s] [0/1793/0 iops] [eta 00m:00s]
file: (groupid=0, jobs=16): err= 0: pid=6328: Tue Aug 6 18:22:17 2019
write: io=52775MB, bw=1758.7MB/s, iops=1758, runt= 30009msec
---
This patch introduces writev and pwritev for lo_write_buf().
v2
- Split into two patches
- Add the lost flags support, such as FUSE_BUF_PHYS_ADDR
v3
- use git send-email to make the patch set in one thread
- move fuse_buf_writev() into fuse_buf_copy()
- use writev for the src buffers when they're alread already mapped by the daemon process
- use calloc to replace malloc
- set res 0 if writev() returns 0
v4
- iterate from in_buf->buf[0] rather than buf[1]
- optimize the code to make it more elegant
v5
- add some check for preconditions of the buffers
Jun Piao (2):
add definition of fuse_buf_writev().
use fuse_buf_writev to replace fuse_buf_write for better performance
Signed-off-by: Jun Piao <piaojun at huawei.com>
---
buffer.c | 43 +++++++++++++++++++++++++++++++++++++++++++
seccomp.c | 2 ++
2 files changed, 45 insertions(+)
--
More information about the Virtio-fs
mailing list