首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >posix_fallocate以4K的间隔一次写入一个字节,导致我的fuse over NFS实现非常慢

posix_fallocate以4K的间隔一次写入一个字节,导致我的fuse over NFS实现非常慢
EN

Stack Overflow用户
提问于 2016-07-23 04:14:52
回答 1查看 228关注 0票数 0

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

我如何通过fuse通知应用程序我可以直接处理错误定位,而不应该求助于单字节写入?

EN

回答 1

Stack Overflow用户

发布于 2017-02-24 16:35:10

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

我在挂载了一个posix_fallocate卷的linux上使用了这个文件系统。事实证明,当遇到EOPNOTSUPP时,linux的posix_fallocate实现完成了向每个块写入1个字节的困难工作。

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

代码语言:javascript
复制
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*
.....
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38534607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档