我们有一位客户抱怨使用 MS SQL 数据库的应用程序的性能。他们不相信性能问题是应用程序本身的问题。
Smart Array E200i RAID 控制器具有 128MB 缓存,我们将缓存设置为 75% 读取/25% 写入。磁盘阵列设置为启用写入缓存。
最近我们使用以下方法进行了磁盘性能测试SQL输入输出基于本指南。我们使用 10 GB 的文件进行测试,发现平均顺序读取速率约为 60 MB/秒(兆字节/秒),平均随机读取速率约为 30 MB/秒。这些数字是否符合服务器应有的性能要求?比标准更好?太糟糕了?太惊人了?
有关服务器设置/RAID 控制器配置的其他信息:
有三个 146 GB SAS 10k RPM 3.0 GB/秒(型号 HP DG146BABCF)驱动器,配置为 RAID 5 阵列。这些是服务器唯一可用的物理磁盘,因此日志和数据(包括操作系统数据和分页文件)都位于同一个物理磁盘阵列上(有 2 个逻辑驱动器,操作系统数据是分开的)。阵列条带大小设置为 64k。总可用空间为 273 GB。
HP Advanced Data Guard 已关闭。重建和扩展优先级设置为中等。表面扫描延迟为 15 秒。控制器有一个缓存板和一个电池组。
答案1
太多无法估量的事情。例如,磁盘是如何设置的?如果日志和数据共享同一个磁盘,来自数据区域的随机 I/O 将破坏日志流量,日志流量主要是顺序 I/O,并且会受到同一磁盘上繁忙的随机访问工作负载的严重影响。
如果不对您的配置有更多的了解,我真的无法说出可能导致问题的原因。
例如,对于 4 磁盘 RAID-5 或 RAID-10(64k 条带和 15k 驱动器),RAID 的 60MB/秒速度大约是合适的。磁盘每转一圈,每个驱动器将读取一个 64k 条带(15k 驱动器的速度约为 250/秒),这样每个驱动器的速度为 15MB/秒。
15k 磁盘的平均寻道时间在整个磁盘上约为 3ms。在具有(例如)146GB 或 300GB 磁盘的 RAID 卷上,在缓存的帮助下,我可以看到 30MB/秒对于如上所述配置的磁盘阵列来说是一个合理的数字。它表示磁盘每旋转两次平均读取一次数据。
这是我脑海中想到的 ML350 上可能出现的配置。但是,我不知道这是否符合您的实际配置,因此我无法评论这些观察结果是否与您的情况相关。
答案2
答案3
下面是我们使用类似硬件进行的基准测试,并指出了一些差异。我猜想部分性能下降是由于分区未对齐(Windows 2003 默认未对齐分区)。运行以下命令,如果起始偏移量为 32256,则未对齐。
wmic 分区获取索引、块大小、名称、起始偏移量
要正确对齐分区,您需要使用 DISKPART 实用程序。
测试硬件:
HP DL380 G5
2 插槽,共 4 个内核
16GB RAM
HP P400 控制器
512MB 缓存
25% 读取/75% 写入
10K RPM HDD
Windows Server 2003,32 位
五分钟测试周期
结果(兆字节/秒):
(RS:顺序读取 RR:随机读取 WS:顺序写入 WR:随机写入)
Raid5 3 HD:
RS 180
RR 180
WS 120
WR 130
Raid5 4 HD:
RS:240
RR:260
WS:175
WR:180
突袭5 5 HD:
RS:310
RR:320
WS:210
WR:225
答案4
Smart Array E200i 是否安装了备用电池写入缓存?我曾见过没有 BBWC 的 Smart Array 控制器性能非常糟糕。
至于你读取的数据速率,我无法评论我是否见过高端台式机系统达到 60 MB/秒。但是数据速率读数可以!发布您使用的工具的参数,以便更好地进行比较。