我们正在开发一个每天为数千名用户提供服务的应用程序(其中 90% 的用户将在工作时间处于活动状态,并在工作日不断地使用该系统)。该系统的主要目的是查询多个数据库并将数据库中的信息组合成一个单一的响应给用户。根据用户输入,对于一个有 1000 个用户的系统,我们的查询负载可能是每秒大约 500 个查询。这些查询中有 80% 是读取查询。
现在,我使用 SQL Server Profiler 工具进行了一些分析,我平均获得了大约 300 次读取查询的逻辑读取(我还没有为写入查询而烦恼)。对于 1k 个用户,这相当于每秒 150k 逻辑读取。完整的生产系统预计将拥有约 1 万名用户。
我如何估计这些数据库对存储的实际读取需求?我很确定实际的物理读取量会比这少得多,但我该如何估计呢?当然,我不能在生产环境中进行实际运行,因为生产环境还没有,我需要告诉硬件人员我们需要多少 IOPS 才能让他们知道要做什么买。
我尝试了之前答案中建议的 HP 选型工具,但它只建议 HP 产品,没有实际的性能估计。任何见解都值得赞赏。
编辑:主要的只读数据集(大多数查询将去的地方)是磁盘上的几个 gigs(数量级 4gigs)。这可能会显着影响逻辑与物理读取。任何见解如何获得这个比率?