我有一台CentOS 5 VMWare服务器通过NFS连接到OpenSolaris 2009.06计算机,用于保存磁盘映像.我的虚拟机似乎受到慢速IO的约束,所以我想尽我所能来优化连接.
我不确定在生产系统上测量吞吐量的最佳方法,但是使用dd bs = 1024k count = 400的一些不科学的测试显示~1.6GB / s的本地(OpenSolaris)写入和远程(CentOS)写入~50MB /秒.我想这些低于我实际得到的,因为7个VM当前正在连接上运行.
目前,这两台机器是直接连接的gigE,在两个NIC上都启用了巨型帧(MTU = 9000).除此之外,没有进行任何优化. NFS挂载/导出使用默认值.
我应该从哪里开始转动旋钮以提高性能?
只是为了澄清,你通过单个Gb以太网连接获得50MB /秒的NFS?
并且主机服务器正在运行安装了VMware Server的CentOS,而后者又运行7个虚拟机?有没有特别的原因你已经将CentOS和VMware Server结合起来,而不是VMware ESXi这是一个更高性能的解决方案?
50MB /秒并不是很好,但是它并不比你期望的单Gb网线低得多 – 一旦你进行了上面提到的NFS调整,你就会看到70- 80MB /秒.沿线的选项:
“RO,硬,INTR,重传= 2,RSIZE = 32768,WSIZE = 32768,nfsvers = 3,TCP”
在系统的两端对你来说都是合理的.
为了达到这个目的,你需要考虑将网卡组合成对,这样可以将吞吐量提高约90%.您可能需要一台支持802.3ad的交换机才能获得link aggregation的最佳性能.
我建议的一件事是OpenSolaris盒上的IO吞吐量听起来可疑,12个磁盘不太可能支持1.6GB /秒的吞吐量,而Solaris ZFS可能会大量缓存.