我有一个 OpenSolaris 盒子,它共享两个 ZFS 文件系统。一个是与运行 VMware 服务器的 CentOS 盒子的 NFS 连接(磁盘映像存储在 ZFS 中)。另一个是与 Windows 2008 服务器的 iSCSI 连接,在 ZFS 之上采用 NTFS 格式。这两个连接都是通过千兆以太网直接建立的(没有交换机)。
我正在运行 munin 来监控这些盒子,但我不确定应该期待什么样的数字。有人能给我一些基准数字来比较吗,或者就从哪里开始调整提出建议吗?
以下是我看到的 NFS 统计数据,一旦我修复了 solaris 盒子上的 munin,我就会发布 iSCSI :P
答案1
我们已经将 Sun X4100 通过绑定的 GigE 和 iSCSI 写入到 Sun X4500 的速度提升到 280MB/s。
有很多方法可以调整 Solaris 上的 TCP 堆栈来帮助解决问题,这是我的常规调整配置。(取自一些 Sun 白皮书集合):
$ cat /etc/rc3.d/S99ndd
#!/bin/bash
NDD=/usr/sbin/ndd
$NDD -set /dev/tcp tcp_xmit_hiwat 1048576
$NDD -set /dev/tcp tcp_recv_hiwat 8388608
$NDD -set /dev/tcp tcp_max_buf 8388608
$NDD -set /dev/udp udp_xmit_hiwat 1048576
$NDD -set /dev/udp udp_recv_hiwat 8388608
$NDD -set /dev/udp udp_max_buf 8388608
$NDD -set /dev/tcp tcp_conn_req_max_q 65536
$NDD -set /dev/tcp tcp_conn_req_max_q0 65536
$NDD -set /dev/tcp tcp_fin_wait_2_flush_interval 67500
另外,值得在您的 OpenSolaris 机器上研究的是更改 fsflush 间隔、中断调整“魔法”和禁用软环。将以下内容附加到 /etc/system(需要重新启动):
* "fsflush" tuning
set tune_t_fsflushr = 5
set autoup = 300
* Disable the Automatic Interrupt Adjustment
set dld:dld_opt = 2
* Disable "soft rings"
set ip:ip_squeue_fanout = 0
set ip:ip_soft_rings_cnt = 0
值得一提的是,我是在 Solaris 10(而不是 OpenSolaris)上执行此操作的,但我认为可调参数应该同样适合您。
我非常喜欢 Filebench,因为它可以调整各种调整选项并进行吞吐量测试。
(最近更名的) OpenSolaris 2009.06 版本在 iSCSI 和 ZFS 领域看起来非常令人兴奋。
希望这对一些人有帮助!
答案2
我通过 1GB 以太网上的 iSCSI 以大约 90 MB/秒的速度访问我的 EMC AX150i 阵列。
答案3
对于仅一个 dd 或 bonnie++(原始速度,线性写入),您应该非常接近线速。
但是,一旦您开始运行多个虚拟机的随机 IO 负载,您的瓶颈就会是磁盘阵列,比传输负载要大得多。
此外,如果您没有具有大量 RAM 的由电池支持的写入缓存,那么当您开始在任何其他 IO 中进行大量写入时,您的性能就会下降。
答案4
我在 1G 以太网上通过 ISCSI 为我的 Windows 服务器提供了大约 80 MB/S 的速度。目标:KernSafe iStorage 服务器http://www.kernsafe.com/Product.aspx?id=5 启动器:Microsoft Initiator www.microsoft.com/downloads/details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&displaylang=en
硬盘:ATA 7200