我有一个非常活跃的网站,它使用 NoSql 数据库 (RavenDb)。我没有确切的数字,因为我不太清楚如何提取这些信息(任何帮助都很好!)
但是在性能监视器中查看运行我的数据库的磁盘上的“磁盘读取百分比”计数器,它经常超过 1000......如果它是一个百分比,这没有任何意义???
一旦这些数字达到这么高,我的网站的性能确实会下降,但不会下降到无法使用,但应该会更好。
我是否正在查看正确的性能计数器,我还能查看什么来确定我的磁盘是否处于高负载状态...如果我能找出原因就更好了。
我的磁盘是 2TB 7200 rpm 磁盘(我知道这不是最理想的,但这是我目前所有可用的磁盘)12GB 内存(使用率约 80%)双 Xeon 处理器
我知道这个问题有点模糊,我需要一些帮助来向您提供正确的详细信息,以帮助您更好地回答这个问题,请告诉我什么会有所帮助。
保罗
答案1
你的直觉是正确的;我不会再考虑磁盘以外的问题。消费级 SATA 磁盘速度非常慢,根本不适合托管业务应用程序。薄弱环节将是实际主轴速度和存储 (RAID) 控制器。在其他条件相同的情况下,串行连接 SCSI (SAS) 将比 SATA 产生更多的 IOPS。避免对 (大多数) 数据库使用 RAID5,尽可能使用 RAID10。
不幸的是,与许多其他 IT 问题一样,唯一真正的解决方案就是“减少贫困”。
更新:
要回答有关“% 磁盘读取时间”的问题,请参阅以下 Microsoft 知识库文章。某些存储控制器似乎以奇怪的方式报告统计数据。话虽如此,看起来您的磁盘确实被推到了绝对极限。
答案2
您不能使用 %disk 读取时间 来判断磁盘是否繁忙,这是因为“繁忙时间基于 I/O 请求的持续时间,其中包括除读取或写入磁盘之外的其他活动所花费的时间。然后,它将所有请求的所有繁忙时间相加,并将其除以采样间隔的经过时间。如果一次处理多个请求,则总请求时间大于采样间隔的时间;因此,报告的磁盘利用率可能超过实际利用率。”