> -----邮件原件----- > 发件人: Miklos Szeredi [mailto:miklos@xxxxxxxxxx] > 发送时间: 2018年10月1日 17:19 > 收件人: 刘硕然 <liushuoran@xxxxxx> > 抄送: Constantine Shulyupin <const@xxxxxxxxxxxxx>; open list:FUSE: > FILESYSTEM IN USERSPACE <linux-fsdevel@xxxxxxxxxxxxxxx>; Jonathan > Corbet <corbet@xxxxxxx>; mitsuo.hayasaka.hu@xxxxxxxxxxx; Amir > Goldstein <amir73il@xxxxxxxxx> > 主题: Re: 答复: [PATCH v4] fuse: add max_pages option > > On Wed, Sep 26, 2018 at 12:39 PM, 刘硕然 <liushuoran@xxxxxx> wrote: > > > > > > 刘硕然 > > 商城技术架构部 智能存储部 > > ---------------------------------------------------------------------- > > -------------------------- > > 手机/+86 18201588100 > > 邮箱/liushuoran@xxxxxx > > 地址/北京市经济技术开发区科创十一街18号院京东大厦B座16层 > > ---------------------------------------------------------------------- > > -------------------------- > > > > > > > >> -----邮件原件----- > >> 发件人: Constantine Shulyupin [mailto:const@xxxxxxxxxxxxx] > >> 发送时间: 2018年9月26日 18:07 > >> 收件人: 刘硕然 <liushuoran@xxxxxx> > >> 抄送: Miklos Szeredi <miklos@xxxxxxxxxx>; open list:FUSE: FILESYSTEM > IN > >> USERSPACE <linux-fsdevel@xxxxxxxxxxxxxxx>; Jonathan Corbet > >> <corbet@xxxxxxx>; mitsuo.hayasaka.hu@xxxxxxxxxxx; Amir Goldstein > >> <amir73il@xxxxxxxxx> > >> 主题: Re: [PATCH v4] fuse: add max_pages option > >> > >> Hi Shuoran, > >> > >> On Wed, Sep 26, 2018 at 12:40 PM 刘硕然 <liushuoran@xxxxxx> wrote: > >> > I haven't tested the patch yet. But after reviewing the patch, I > >> > don't see > >> anything related to BDI_CAP_STRICTLIMIT. So would you please explain > >> a little bit more? Thanks. > >> > >> Bigger size of request reduces total number of requests and reduces > >> overhead of per request operations. > >> > >> > PS: I did try increasing FUSE_MAX_PAGES_PER_REQ, but it seemed not > >> helping in my scenario(writeback cache enabled, 4K writes, total > >> write size is not very large). > >> > >> To utilize FUSE_MAX_PAGES_PER_REQ in kernel it is must to increase > >> KERNEL_BUF_PAGES it libfuse too. I have libfuse patch with > >> configurable max_pages. > >> > >> But 4K writes will not benefit from increase of request size, which > >> now is 128K and proposed size is 1M. > >> > > > > This is true. So my original purpose of using writeback cache was trying to > improve the performance of small writes. Because for big writes, fuse kernel > would send requests to libfuse anyway, with or without writeback cache. > > > > The BDI_CAP_STRICTLIMIT issue happens when writeback cache is enabled, > since balance_dirty_pages() is triggered in every small writes even if no > request is sent to libfuse, which slows things down. > > > > So IMHO, increasing FUSE_MAX_PAGES_PER_REQ would certainly help for > big writes, but might not be a solution to BDI_CAP_STRICTLIMIT issue. > Please feel free to correct me if I misunderstand anything. Thanks in > advance. > > > Makes sense. Can you do a kernel profile to see where most of the time is > actually spent in your workload? > > Thanks, > Miklos Sorry for the late reply. Actually I already did a kernel profile. And that's why I asked for help in the first place. https://lkml.org/lkml/2018/8/9/71 I added some extra trace points to narrow down the performance bottleneck, and it seemed that balance_dirty_pages() took up most of the time (but I did not put full log in the above thread, since they are not in the upstream kernel and people might get confused). Regards, Shuoran