我们有一个应用程序,它已经在服务器上运行,并且它的数据库也已在运行。由于这个应用程序数据库的 I/O(读取和写入)量很大,因此我们的查询响应速度非常慢。因此,我们决定构建一台新的服务器机器,在那里安装该应用程序及其数据库。数据库大小为 15Gb,每秒处理 10-100 笔事务,至少有 5 个物理用户和 10-20 个来自其他应用程序的用户连接到这个数据库,平均 IOPS 为 150 到 200。
我们想购买的机器的详细信息如下。有趣的几点:
- 两个 raid 1 阵列。一个用于数据库,另一个用于系统。
机器规格:
- 至强 2.4Ghz
- 12GB 内存
- 两个 raid 1 阵列。4 个 146GB 15K 磁盘
- Windows 服务器 2008 R2
- Microsoft SQL Server 2008 标准。
你怎么看待这件事??
答案1
您没有提到它是哪款特定的 Xeon - 根据型号,性能存在很大差异,了解这一点会很好。
您可以考虑增加内存,以便始终将所有数据保存在内存中 - 看看是否可以增加到 16-24GB。
您知道数据库的总体概况吗?它是大部分时间都在读取而很少写入,还是一直在写入?有多少个磁盘插槽可用,类型/大小/速度/物理尺寸是什么?
答案2
该数据库的平均 IOPS 为 150 到 200。
这里有些问题。如果你得到一台转速为 10,000 RPM 的 Velociraptor,你的 IO 预算就会高于 150 到 200 OPS。
150 到 200 IOPS 并不算多。
数据库大小为 15Gb,每秒处理 10-100 笔交易
买一个低成本的 SSD(32、64GB)并使用它。比 15k 光盘多得多的 IO,而且价格也更便宜。
答案3
很难说你建议的规范是否足够,因为不知道很多更多有关 DBMS 实际在做什么的信息。
有一点很突出,那就是“系统”镜像将相对不活跃 - 我建议使用单个卷的 raid 0+1(将磁盘 1 和 3 上的条带集镜像到磁盘 2 和 4 上)。尽管您提议的内存几乎与数据库本身的大小相同,但您可能从只花 2 个磁盘上的钱和添加更多 CPU 核心中获得更多好处。
C。