gpt4 book ai didi

linux - posix_fallocate 以 4K 间隔一次写入 1 个字节,导致我对 NFS 实现的熔断非常慢

转载 作者:太空宇宙 更新时间:2023-11-04 10:33:47 24 4
gpt4 key购买 nike

我有一个可以重新导出 NFS 共享的 fuse 模块。像 fio 这样调用 posix_fallocate 的应用程序最终会调用我的 fuse 写入函数,并以 4K 的散布写入一个字节。这反过来会导致通过 NFS 进行单字节 RPC 调用,从而使性能非常缓慢。

我如何通过 fuse 向应用程序宣传我可以直接处理 fallocate 而它不应该求助于单字节写入?

最佳答案

你需要的是:不要让你的 fuse 在 posix_fallocate 调用时返回 EOPNOTSUPP

我在安装了 NFS 卷的 Linux 上跟踪 posix_fallocate。事实证明,linux 的 posix_fallocate 实现会在遇到 EOPNOTSUPP 时向每个 block 写入 1 个字节。

下面一行显示了输出的部分strace:

fallocate(3, 0, 0, 8589934592)          = -1 EOPNOTSUPP (Operation not   supported)
pwrite(3, "\0", 1, 1048575) = 1
pwrite(3, "\0", 1, 2097151) = 1
pwrite(3, "\0", 1, 3145727) = 1*
.....

关于linux - posix_fallocate 以 4K 间隔一次写入 1 个字节,导致我对 NFS 实现的熔断非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38534607/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com