我正在尝试计算文件服务器所需的 IOPS,为此我需要知道典型的块大小。我知道 NFS 客户端可以使用rsize
和wsize
来指定通过网络发送多少数据。 NFS 服务器是否也使用这些相同的值将数据写入磁盘,或者是否有其他方法进行配置?我在手册页中没有找到任何内容。
答案1
AIUI,如果将 NFS 导出切换到sync
模式,它可能会使用相同的大小。否则,炸鱼薯条德里克的评论是正确的。它的工作方式与底层 Linux 文件系统类似,只是 close() 暗示了 fsync()。
http://nfs.sourceforge.net/nfs-howto/ar01s05.html#sync_versus_async
那么底层的 Linux 文件系统是如何工作的呢?
写入进入内核页面缓存。这是一个写回缓存。因此,多个连续的写请求可以合并为一个。
可以使用该命令查看内核发送到磁盘设备的平均写入大小iostat
(即在 NFS 服务器上)。