我们正在构建一个新的 SQL 服务器,并且想要一些关于硬件的建议。目前,我们在内部构建所有系统。根据以下信息,您会为驱动器和外部 SAS 笼推荐什么。此外,在这种工作负载中,SAS 与 SATA2 相比有多大优势?
到目前为止的基本规格:
- AMD 飞鸿 II X4 955 处理器
- 8GB 内存
- 2TB RAID6 存储(考虑 450GB Seagate Cheetah 15K.6 驱动器)
- 1TB RAID1 存储(为什么如下)(1TB Seagate Barracuda ES.2)
- 3ware 9690SA SAS 控制器
软件:
- Windows 2003 或 2008 服务器(尚未决定)
- SQL Server 2005 或 2008(取决于应用程序兼容性)
工作量:
对于大多数应用程序(大约 1TB)(财务、内部应用程序等)来说,该服务器的读/写量相当大。我们在 ArcGIS 使用的服务器上也有 GIS 数据。我们的计划是将矢量数据放在主 RAID6 阵列上,而光栅数据(大约 750GB)放在 RAID1 阵列上(因为它的使用不那么频繁)。
我建议 RAID10 用于主要不是只读的繁重数据库工作,而不是 RAID5 或 6。在 4 驱动器 RAID6 阵列上,每个块写入(或部分块写入)都可以转换为读取(以获取其他数据块),然后是三个写入(一个用于初始写入,两个用于两个奇偶校验块),这可能会对写入性能产生重大影响。对于 RAID10,每个(部分)块写入只是对磁盘的两次写入。
如果您的数据库访问确实包含很少的写入,那么 RAID6 可能更适合冗余,因为 RAID6 阵列可以在任何两个发生故障的驱动器中幸存下来,而由四个驱动器组成的 RAID10 阵列只能在两个发生故障的驱动器的 6 种可能组合中的 4 种中幸存,但是您声明您希望该活动是读写密集型的(并且您有良好的备份和灾难恢复计划,对吗?)。
显然,请确保您使用 64 位版本的 Windows 和 SQL Server,否则您将无法使用所有这些 RAM,而没有像 PAE 这样会消耗性能的黑客。当我们记忆犹新时:如果可以的话,我会建议更多。如今,RAM 并不昂贵,即使是具有 ECC 功能的知名品牌 RAM,所以从 8 块升级到你可以在板上安装多少块并不是一个坏主意。对于 SQL Server 中的大多数应用程序(具有足够大的数据库),您会注意到在任何明显负载下的好处,因为它将大大减少读取查询的 I/O 操作,因为更大的工作集可以保存在内存中。从您的描述看来,您的数据大小和活动模式将受益于您实际上可以投入多少内存。如今,许多新服务器都支持 16Gb 的 RAM,
如果您的数据库是写密集型的,请使用 RAID 10,而不是 RAID 6。使用非常快、非常棒的 SAS 磁盘。
购买比您需要的更大的机箱,这样您就可以适应它。我最近在我的生产数据库服务器中添加了一个四核——我可以告诉你,在我的职业生涯中,我真的很高兴我购买了双插槽主板,尽管我只需要四核就可以启动。CPU 利用率从 60% 的平均 100% 长峰值到 30% 的平均只有很少的 100% 峰值对我们的性能产生了巨大影响。不必完全从一台机器迁移到另一台机器来实现这一点真是太棒了——在额外的插槽中弹出另一个芯片大约需要 20 分钟。至于内存;尽可能多地投入机器可以采取的措施。
请注意,我们的生产系统使用 SAS,我们的开发系统使用 SATA。我们绝对可以感受到并量化差异;在我们加载的生产机器上可能需要 1.5 秒的查询在我们的未加载的开发服务器上可能需要 3 秒。当然,这绝对是轶事,还有其他差异;但我们注意到 IO 绝对是杀手锏。1.5秒不是什么大问题,对吧?除了在生产中,每小时有 1.5 秒的差异 * x 个用户 * y 个请求。
关于 IO 的另一个想法:我们小心地将我们最大的最常用表设置在包含多个文件的文件组上。这样做的性能增强之一是 SQL 将对文件组中的每个文件进行线程请求 - 因此,如果 BigOverUsedTable 在 FileGroup1 上并且 FileGroup1 中有四个文件并且您的数据库有 8 个核心,它实际上将使用四个核心来执行“选择来自 BigOverUsedTable 的大数字处理讨厌的查询”——否则,它将只使用一个 CPU。我们从这篇 MSDN 文章中得到了这个想法:
http://msdn.microsoft.com/en-us/library/ms944351.aspx
来自 TFA:
“文件组使用并行线程来改进数据访问。当按顺序访问表时,系统会为每个文件并行创建一个单独的线程。当系统对具有四个文件的文件组中的表执行表扫描时,它使用四个单独的线程来并行读取数据。通常,在单独的磁盘上使用多个文件可以提高性能。文件组中的文件过多会导致并行线程过多并产生瓶颈。
由于这个建议,我们在 8 核机器上的文件组中有四个文件。它运作良好。
对于随机访问操作,SAS 比 SATA2 具有巨大优势。我会不惜一切代价避免使用 SATA。你提到内部建造,你看过像这样的机架系统吗?
http://www.newegg.com/Product/Product.aspx?Item=N82E16811219021
它将在单个机架安装单元中为您提供 20 个 SAS 驱动器托架。添加您选择的主板和 SAS 控制器。