IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

NFS随机IOPS性能不高的分析

Alibaba DBA Team 2009-10-10 18:23:09 累计浏览 4,779 次
本机暂存

    最近做FS3,一直对nfs的随机IOPS性能不高所困扰,所以细细分析了nfs的运行机制:

    NFS做数据传输是通过RPC调用来完成了。RPC调用的特点为,发起调用的进程会等待服务器端完成调用,在服务器端完成调用之前,

    发起调用的进程是会一直被阻塞的。

    同时对于NFS来说,一个nfs client端到一个nfs Server端只会建立一个连接。nfs服务请求的处理过程是,只有上一个请求处理完成后,

    才能处理下一个请求。所以处理过程是串行的,而不是并发的,这就导致了NFS处理随机IO能力不高。例如:

    目前SAS硬盘的随机读写的寻道时间大约为4-5ms,所以当把这样的多块硬盘做成一个raid0,单个IO的响应时间也不会低于4ms,

    由于NFS处理是串行的,所以这时读IOPS最多只能达到1000ms/4ms每个=250 IOPS。对于本地的raid磁盘组,虽然单个IO的响应时间为4ms,但由于是可以并发处理的,

    也就是说,多个IO是同时发到各个硬盘上去的,这样总体的IOPS会很高,而对于NFS时,由于NFS处理是串行的,所以其IOPS不会因raid而更高。

    另,由于很多NFS Server对于写操作,不必等真正写到磁盘中去时,才返回,所以写IOPS可以远远高于读IOPS。

    结论:NFS的读IOPS与单个随机读IO的响应时间成反比,响应时间越短,读IOPS越高。所以ssd盘做nfs的IOPS大大高于普通硬盘的IOPS。

同分类推荐文章

  1. 等了十年的 Go 链式管道,终于来了:seq 让你像写 Scala 一样写 Go (2026-06-25 18:38:18)
  2. Go 实验特性详解 (2026-06-21 10:05:27)
  3. amd64 微架构级别对 Go 程序性能提升多少? (2026-06-21 09:38:49)

查看更多 后端 文章 →

建议继续学习

  1. 如何成为Python高手 (累计阅读 54,992)
  2. Linux大棚版Thrift入门教程 (累计阅读 24,503)
  3. Linux 性能监控、测试、优化工具 (累计阅读 13,010)
  4. include(“./file.php”)和include(“file.php”)区别 (累计阅读 12,788)
  5. Rolling cURL: PHP并发最佳实践 (累计阅读 11,486)
  6. 关于使用STL的红黑树map还是hashmap的问题 (累计阅读 8,873)
  7. jQuery性能优化指南 (累计阅读 8,819)
  8. 提升磁盘IO性能的几个技巧 (累计阅读 8,508)
  9. 关于PHP的编译和执行分离 (累计阅读 8,345)
  10. Mysql的随机读取 (累计阅读 7,861)