以下情况在不同的 RAID 控制器上发生过两次。一次是运行 RAID5 的 LSI MegaRAID,第二次是运行 RAID1 的 HP Smart Array E200i。第一台服务器运行几年都很顺利。然后人们开始抱怨性能。后来发现这不仅仅是“应用程序问题”,因为简单的磁盘操作(如对包含 20-30 个文件的目录执行 ls)可能需要长达 5 秒钟。以下是 vmstat 在高负载下报告的内容:
procs -----------memory------------ ---swap-- -----io---- -system-- ----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa
1 8 8944 126004 20 1597500 0 0 1666 5935 282 833 10 3 0 86
1 16 8944 122276 20 1599636 0 0 612 6300 314 615 10 3 0 87
1 12 8944 123740 20 1599332 0 0 811 5103 188 794 2 2 0 96
0 19 8944 121916 20 1600808 0 0 150 7299 163 858 1 1 0 97
0 16 8944 239244 20 1612256 0 0 647 2522 156 798 0 1 0 99
0 6 8944 215308 20 1643712 0 0 3030 3060 201 956 33 5 0 62
1 13 8944 186352 20 1672540 0 0 143 6173 166 931 14 8 0 78
8 2 8944 137368 20 1710432 0 0 111 6425 171 833 48 4 0 48
1 11 8944 122500 20 1725892 0 0 306 5222 153 746 69 4 0 27
24 13 8944 128444 20 1729680 0 0 380 5210 170 4484 16 6 8 70
0 4 8944 124956 20 1731228 0 0 389 4933 272 761 4 2 0 93
0 6 8944 123004 20 1735780 0 0 15 7856 209 682 1 2 7 90
因此,服务器从生产使用中撤出,并使用 bonnie++ 进行测试,并使用 vmstat 进行监控,结果几乎相同。因此,看起来磁盘有故障。但是,当查询 RAID 控制器时,似乎逻辑驱动器和物理磁盘都正常。此外,内核日志不包含任何可能表明磁盘操作存在问题的消息。
所以我的问题是:我该如何进一步调试这个问题?我是否必须更换控制器/磁盘,然后看看更换后情况是否有所改善?或者也许可以执行一些命令并研究其结果以查明问题的确切位置?
答案1
是不是因为写入缓存被关闭了?也许是电池没电了,所以它从回写切换到直写?
一些没有电池并且带有缓存的廉价硬件突袭默认启用缓存仅用于读取 - 是否可能是您将它设置为也使用写缓存并且控制器“丢失”了设置?
此外 - 也许其中一个驱动器有故障?尝试查看 raid 日志 [MegaCli 命令行工具应该有帮助]。