所以我正在构建一个 SQL Server 2008 R2 x64...将运行一个大约 2GB 的单用户数据库,读/写比例大概为 80/20,大约有 100 个用户。
基本硬件是 DL380、12GB RAM 和双 6 核 Xeon。现在我被磁盘配置搞糊涂了……
选项 1
RAID 1 60GB SSD(操作系统、SQL 文件、TLog、TempDB)
RAID 1 120GB SSD(数据库文件)
或者
选项 2
RAID 1 146GB 15K(操作系统、SQL 文件)
RAID 1 146GB 15K(Tlogs、TempDB)
RAID 10 4x148GB 15K(数据库文件)
我当前生产服务器的一些性能数据:
可用内存(MB)——813(服务器有 4GB 内存)
页面预期寿命——496854avg
批处理请求/秒——7.5avg 97.595max
SQL 编译——3.422avg 27.599max
SQL 重新编译——0.002 0.200max
业务优先级更高的是可靠性而不是性能。
您更愿意选择上述哪种磁盘配置?SSD 的成本差异约为 +2700 美元(还需要第二个镜像服务器)。对于如此小的数据库,SSD 会有什么不同吗?我可以想象,如果有 12GB,我就有足够的物理内存来存储整个数据库,对吗???
感谢任何反馈...谢谢!
答案1
我读过关于固态硬盘 (SSD) 具有高故障率;因此,如果可靠性是优先考虑因素,我会选择 15k SAS 驱动器。
不管怎样,使用 RAID 可以实现磁盘容错,但使用 15k SAS 可能效果最好。我们运行了大量配备 15k SAS 驱动器的戴尔服务器,它们非常稳定。
答案2
使用 SSD 时,磁盘块被破坏的可能性更高。如果您有 OLTP DB,这不是一个好主意,即使您的读/写寻道时间要快得多。您可能还必须在 DB 上运行更频繁的 DBCC 检查,以排除 SSD 上的损坏部分。对于 OLAP 系统,SSD 变得更容易接受,但您仍然有相同的优点和缺点。
答案3
如果优先考虑可靠性,请选择选项 2 并远离 SSD。
有了这么多的内存和这么小的数据库,读取的存储性能无论如何都不会有太大影响。
在数据库上进行一些查询活动后,所有内容都将存储在 RAM 中。除了通过惰性写入器进行更新外,SQL 不应再接触磁盘。
我会将那一对文件仅用于日志,并将 tempdb 数据文件和其他数据文件一起放在 RAID 卷上。您不太可能同时对数据文件和 tempdb 进行物理 IO。将日志放在那对文件上将使该对文件的写入缓存更容易跟上并最大限度地减少磁盘头移动,这才是真正的敌人。您希望日志写入速度快,因为它们与您的 DML 同步。数据写入速度可能会慢一些,因为它们由 SQL Server 缓存并且是异步的。