AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 34626
Accepted
Jon Bailey
Jon Bailey
Asked: 2009-07-02 10:08:19 +0800 CST2009-07-02 10:08:19 +0800 CST 2009-07-02 10:08:19 +0800 CST

SQL Server 硬件配置建议

  • 772

我们正在构建一个新的 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 阵列上(因为它的使用不那么频繁)。

sql-server hardware
  • 3 3 个回答
  • 4380 Views

3 个回答

  • Voted
  1. Best Answer
    David Spillett
    2009-07-02T10:42:36+08:002009-07-02T10:42:36+08:00

    我建议 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,

    • 4
  2. Kyle
    2009-07-02T10:17:36+08:002009-07-02T10:17:36+08:00

    如果您的数据库是写密集型的,请使用 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 核机器上的文件组中有四个文件。它运作良好。

    • 3
  3. Kevin Kuphal
    2009-07-02T10:15:27+08:002009-07-02T10:15:27+08:00

    对于随机访问操作,SAS 比 SATA2 具有巨大优势。我会不惜一切代价避免使用 SATA。你提到内部建造,你看过像这样的机架系统吗?

    http://www.newegg.com/Product/Product.aspx?Item=N82E16811219021

    它将在单个机架安装单元中为您提供 20 个 SAS 驱动器托架。添加您选择的主板和 SAS 控制器。

    • 0

相关问题

  • 笔记本电脑 - RAM 与磁盘的性能

  • 如何物理清理脏桌面和服务器?

  • Vanilla Powershell 是否足以成为 Windows 和 DB 服务器管理员的语言?

  • 在 SQL Server 中,何时应将 PRIMARY Data FileGroup 拆分为辅助数据文件?

  • 如何从 SQL Server 2008 中的备份中排除索引

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve