这是我以前从未见过的。我们有一个 IBM Storwize V3700 存储阵列,24 TB,RAID 5,通过千兆以太网上的 iSCSI 链路连接到 Solaris 10 文件服务器(目前没有 MPIO)。
我们在 RAID 阵列上有两个卷:
c2t602d0 - ZFS
c2t603d0 - UFS
为了简洁起见,我缩短了名称。
现在,我们发现设备上的 ZFS 卷读取速度非常慢(约 1-3 MB/s)。我创建了 UFS 卷作为测试,并在其上运行了 Bonnie++,以对该设备进行一些基准测试。
在启动 Bonnie++ 之前观察 iostat 的输出:
$ iostat -Dnx c2t602d0 c2t603d0 rmt/1 5 1000
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
13.4 0.0 1491.0 0.0 0.0 1.5 0.0 112.6 0 99 c2t602d0 (ZFS)
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c2t603d0 (UFS)
0.0 10.2 0.0 1305.9 0.0 0.0 0.0 1.2 0 1 rmt/1 (Tape backup)
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
15.8 0.0 1807.4 0.0 0.0 1.3 0.0 84.8 0 99 c2t602d0 (ZFS)
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c2t603d0 (UFS)
0.0 11.4 0.0 1459.2 0.0 0.0 0.0 1.2 0 1 rmt/1 (Tape backup)
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
10.8 0.0 1233.7 0.0 0.0 1.2 0.0 110.1 0 99 c2t602d0 (ZFS)
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c2t603d0 (UFS)
0.0 7.6 0.0 972.9 0.0 0.0 0.0 1.2 0 1 rmt/1 (Tape backup)
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
18.0 0.0 2060.6 0.0 0.0 1.3 0.0 70.9 0 98 c2t602d0 (ZFS)
0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0 0 c2t603d0 (UFS)
0.0 12.6 0.0 1612.7 0.0 0.0 0.0 1.2 0 2 rmt/1 (Tape backup)
rmt/1
c2t602d0
是我们的磁带备份驱动器,它目前正在对 ZFS 卷进行完整备份。请注意,我们以大约 1.2 - 2.0 MB/s 的速度从该卷读取数据。
接下来,观察当我在 UFS 磁盘(它只是同一 IBM 存储单元上的另一个卷)上启动 Bonnie++ 基准测试时发生的情况:
$ iostat -Dnx c2t602d0 c2t603d0 rmt/1 5 1000
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
81.0 0.0 10204.4 0.0 0.0 4.1 0.0 51.2 0 96 c2t602d0 (ZFS)
0.2 75.6 1.6 58547.5 0.0 12.8 0.0 168.8 0 99 c2t603d0 (UFS)
0.0 77.0 0.0 9859.1 0.0 0.1 0.0 1.2 0 9 rmt/1 (Tape backup)
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
90.4 0.0 11465.3 0.0 0.0 4.3 0.0 48.0 0 97 c2t602d0 (ZFS)
0.0 83.4 0.0 57903.1 0.0 13.7 0.0 164.9 0 100 c2t603d0 (UFS)
0.0 86.0 0.0 11004.7 0.0 0.1 0.0 1.2 0 11 rmt/1 (Tape backup)
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
79.8 0.0 10048.3 0.0 0.0 3.2 0.0 40.7 0 97 c2t602d0 (ZFS)
0.0 86.0 0.0 60239.9 0.0 13.3 0.0 155.0 0 98 c2t603d0 (UFS)
0.0 74.4 0.0 9527.7 0.0 0.1 0.0 1.2 0 9 rmt/1 (Tape backup)
extended device statistics
r/s w/s kr/s kw/s wait actv wsvc_t asvc_t %w %b device
91.2 0.0 11587.8 0.0 0.0 5.2 0.0 56.7 0 97 c2t602d0 (ZFS)
0.0 71.0 0.0 55932.3 0.0 13.3 0.0 186.5 0 100 c2t603d0 (UFS)
0.0 89.2 0.0 11423.4 0.0 0.1 0.0 1.2 0 11 rmt/1 (Tape backup)
Bonnie++ 以大约 55 - 60 MB/s 的速度写入存储单元上的 UFS 磁盘。奇怪的是,ZFS 卷上的读取速度现在已跃升至约 10 MB/s。对于千兆以太网来说仍然不是很好,但好多了。这也不是异常。只要 Bonnie++ 的写入量很大,它就能维持 10 MB/s 以上的速度。如果我关闭 Bonnie++,ZFS 卷上的读取速度就会降回大约 1-2 MB/s。
有什么想法可以解释这一点吗?如果有的话,我本以为会发生相反的情况。我们将这两个卷放在同一个存储单元上,通过 iSCSI 连接到我们的文件服务器。如果我开始大量写入其中一个,我本以为另一个上的读取性能会减少而不是猛增到原来的5倍阅读速度。
感谢您的见解。
答案1
我会首先检查服务器是否符合存储的配置要求。检查队列深度和驱动程序级别,以及交换机配置(巨型帧、流量控制等)。肯定出了问题,但听起来不像是存储的问题。如果您发现存储硬件存在性能瓶颈,那么增加负载时情况会变得更糟。
如果您安装了主机套件,存储上的主机配置的大量基础工作将为您完成。此存储应该有一个 IBM solaris 主机套件 - 首先安装它并再次测试。