数据库硬件建议

数据库硬件建议

作为公司中唯一的开发人员,我缺少可以交流想法的人。我被赋予一项任务,即收集我们服务器的一些硬件要求,以便我们可以将一些内部网站面向公众。

当前硬件是

SRV1——统计处理器。

Windows Server 2003 Intel Xeon CPU 3.00ghz 1 GB RAM 512 GB 镜像 RAID 驱动器

SRV2 — 当前正用于复制某些表。

Windows Server 2003 Intel Pentium 4 1200MHZ 1.00 GB RAM 40 GB 硬盘

SRV1 的当前流量统计数据如下

流量 1 ø 每小时 接收 149 GiB 1,034 MiB 发送 445 GiB 3,096 MiB 总计 594 GiB 4,130 MiB

机器正在运行 wamp stack。有几个简单的基于 java 的程序正在对数据库进行读写操作。

应用程序 1:

将数据加载到 myisam 表中 -> 在 myisam 表上运行仅选择查询并使用信息插入和更新大型 InnoDB 表。 -> 将大型 InnoDB 表(当前 7.5 GiB 1300 万条记录)中的数据(插入和重复键更新查询)汇总到较小的 InnobDB 表(最大 2 GB 2,016,166 条记录)中,以便快速读取访问。

应用程序2:

读取较小的 InnoDB 表来对其包含的数据进行一些警报/报告。

网络使用情况:

只读访问内部和外部较小的 InnoDB 表。

即使我们将这些表中存储的数据提供给客户,我也不认为服务器会通过 Web 服务器拥有大量连接。所以我对此并不太担心,我更关心的是访问数据的速度。

因此,总结一下这个愚蠢的长问题。

人们会就操作系统/RAM/硬盘/RAID/处理器提出什么建议?我猜答案是买你能负担得起的最好的。但我承认,我不太清楚在 RAM/RAID/处理器/硬盘等方面我能负担得起的最好的是什么,以及这些东西应该花多少钱。

如果有人能提供任何额外的建议我将非常感激。

提前致谢

艾伦

答案1

如果您想继续使用熟悉的 Windows 设置,那么您绝对应该考虑 Windows 2008 R2 Standard,但如果您不想支付许可证费用,您可以切换到 Linux(CentOS、RHEL、Debian、Ubuntu 都是不错的发行版)。

您可能需要一个四核处理器,价格不太贵,也许是 Intel X3440,配备 12GB RAM,这应该可以帮助您的数据库驻留在 RAM 中,因此一切都很快,还有 4 个 HDD,可以是普通的企业 SATA 硬盘,也可以是 SAS 15K RPM 磁盘,如果您需要更多的磁盘 I/O,但无论哪种选择,您都需要由带有 BBU 的 RAID 卡供电的 RAID-10。

戴尔可能是购买此类服务器的不错选择。如果您目前的硬件运行良好,那么这款服务器的速度将非常快。

答案2

好的,让我们弄清楚:

Windows Server 2003 Intel Xeon CPU 3.00ghz 1 GB RAM 512 GB 镜像 RAID 驱动器

这台机器就像一辆没有引擎的保时捷。对于一台具有多核的现代计算机来说,内存太少了。加载镜像光盘时速度仍然太慢。您应该知道这是否是一个问题(需要检查光盘计数器)。

我在以下设备上运行 SQL Server:4 核 8 GB 虚拟化内存。不过,磁盘布局会让您感兴趣。我为 tempdb、日志文件和数据设置了不同的设置 - 数据是 6 个 velociraptors 上的 raid 10。

为什么?磁盘喜欢 IO,在我的例子中,我运行包含十亿行甚至更多行的表,这些行是我聚合的。RAM 可用于缓存,但除此之外 - 磁盘 IO 也至关重要。当我必须增加磁盘容量时,我可能会将 SSD 作为第二对(将 SSD 和物理磁盘组合在 Raid 10 中 - 当您这样做时,我的 Adaptec 控制器会提供一些不错的功能)。

现在,硬件。超微。只需要有合理的....案例。

您可以买一个高度为 4 个机架单位、有 24 个光盘槽的盒子,或者一个高度为 8 个机架单位、有 72 个 (!) 光盘槽的盒子,如果您需要的话(我很喜欢这个东西 - 可惜我没有)。

操作系统:没什么区别。说真的。Windows 确实有开销 - 是的。但是... 谁在乎呢。数据库服务器占用大量内存,Windows 的小开销不会损坏 16+ GB 的机器。

处理器:取决于你做什么,数据库方面无关紧要。它们与数据仓库、数据清理相关,但纯事务处理通常受 IO 限制更多。IO 是生死攸关的。Velcoiraptors 是低成本和高性能之间的一个非常好的结合点……比 SAS 驱动器便宜很多,比大多数 SATA 驱动器快很多。获得一个好的 RAID 控制器(Adaptec 5805QZ 在我的列表中名列前茅)。

现在,让我们来检验一下现实:

将大型 InnoDB 表(当前为 7.5 GiB 1300 万条记录)中的数据(插入和重复键更新查询)汇总到较小的 InnobDB 表(最大为 2 GB 2,016,166 条记录)中,以便快速读取访问。

在我的世界里,两者都符合玩具大小的要求。1300 万并不是一个让数据库开始紧张的东西。当我开始专业地使用数据库时,7.5gb 确实很大,但是当时基于奔腾的服务器(注意:奔腾 - 甚至不是奔腾 2)有 128mb 内存;)今天,7.5 ggb 表是您在工作站上加载到内存中的东西。

低成本:* AMD Phenom II 主板,六个内核,可连接 16gb RAM。* 被动冷却。* 如果您只需要 8 个光盘,您甚至可以将其放入一个小立方体盒中(我很快就有两个这样的 asm 作为我的个人数据存储)。

答案3

这里有一些很好的答案。我将尝试解决一些其他问题。

任何新东西都会比你已有的东西更好。奔腾 IV 只是名义上的服务器。不要重复这个错误。

无论您选择哪种方案,我都建议使用双电源、ECC/缓冲内存、至少内部镜像硬盘用于启动和 RAID 用于数据。无论您选择 iSCSI 或光纤通道之类的 SAN 还是直接连接,都取决于您的预算和增长计划。提前购买 3 年 4 小时服务计划,因为一旦购买,老板就不会想逐年续订。他会很乐意冒着失去您工作的风险来节省成本。

对于扩展,我建议使用两台服务器,一台具有高 CPU 时钟速率来为 HTTP 提供数据,另一台具有大量内核和 RAM 来为 RDBMS 提供数据。特别注意 HTTP 系统上的以太网。如果您可以获得双以太网和一个可以处理以太网通道的交换机,用于您的 Internet 连接,那就更好了。除了性能之外,它还会为您提供冗余,您可以丢失以太网端口(服务器端、交换机端或坏电缆),服务将继续。Web 服务器以太网通道链路应直接专用于 Internet(或 DMZ,无论什么),以便本地以太网广播风暴不会破坏您的 Web 服务。这意味着您的 Web 服务器上至少需要另外两个以太网端口,实际上是三个。

同样,您的 Web 服务器/RDBMS 服务器链路应该是一对专用的以太网端口。这意味着您的本地 LAN 可能会被广播风暴淹没,但不会影响 Web 到 RDBMS 的通信。您的本地 LAN 可以沉浸在自怜和糟糕的服务中,而您的客户可以享受良好的服务。

至于品牌,请选择一家在您附近有服务公司的大型供应商。要找到答案,请让供应商的小型企业代表给您打电话(哦,天哪,他应该很乐意这样做),然后向他提出一些尖锐的问题,例如,您的零件存放在哪里,谁来为我的系统提供服务,他们离我有多远,等等。他可能不知道,但他最好尽快找到答案,因为您将与他的竞争对手中的另外 3 名与他一样的人交谈,别让他忘记这一点。

相关内容