我有一个在我用 Hyperic 监控的 Windows 服务器上运行的数据库。当我们接近峰值负载时,我看到每分钟的写入量在白天增加。随着我们向系统添加更多用户,峰值逐渐增加。使用其他资源(即 CPU、内存或磁盘空间),很容易看到最大值是多少,并确保我们在用完之前准备好额外的资源。是否有可能粗略预测每分钟的最大写入量可能是多少?或者,我是否只需要增加磁盘写入的数量并查看事情何时开始失败,我认为我的磁盘队列将是我超出驱动器/阵列能力的最佳指标。
==编辑==
通过一些额外的细节,我正在运行 SQL Server 2005,我对写入如此感兴趣的原因是磁盘上的写入当前超过读取大约 30 倍。我假设写入可能是任何其他磁盘活动之前的瓶颈。它支持的应用程序主要是 OLTP,尽管我们也从那里的数据中报告。
简短回答: 预测 - 不,基准 - 是。
长答案: 我认为这不会帮助您实现目标,我相信这是围绕您的数据库服务器正在运行的磁盘进行一些容量规划。
服务器运行的是哪种 RMDBS?数据库正在运行什么样的应用程序?OLTP、决策支持、DW/报告?不同的应用程序和应用程序组将具有不同的磁盘负载配置文件,预测/测量仅写入性能很可能完全没有意义。
作为一名 SQL Server 人员,磁盘子系统对我来说很重要。对于基准测试,我在比较磁盘子系统/磁盘配置时使用SQLIO来测试读/写性能。SQLIO 是一个独立的可执行文件,您可以使用它以不同的方式测试读/写,SQLIO GUI也有帮助。您可以使用此工具来确定您的“最大写入次数”。
一般来说,您不应该依赖单个计数器作为 i/o 瓶颈的指标。以下是我寻找的指示服务器需要更多主轴的指标:
• PhysicalDisk 对象:平均。磁盘队列长度/磁盘数: 当服务器处于负载状态时,该值始终高于 2 表示存在瓶颈
• 物理磁盘:%Disk Time任何超过 60% 都是严重的瓶颈
• 平均。磁盘秒/读取和平均。磁盘秒/写: