MySQL数据库服务器有更多的内核或更多内核?

以下是这个场景,我非常喜欢你的专家build议:

目前我有大约2GB的数据库,可能是一年的两倍。 我想要为我要订购的专用数据库服务器提供最佳的服务器性能,这将用作运行WordPress,论坛和mediawiki的相当繁重的stream量站点的后端。 大部分数据库stream量应该是只读的。

所以问题是,我真的需要超过4GB的内存吗? 我应该去8核心还是只有4? 比另一个重要吗?

就像跟进一样,最终在8 GB内存的8核服务器上得到了很多,所以就这么做了。 很高兴知道我有很大的发展空间。

有趣的问题。 请尝试先定义当前应用程序的瓶颈。 从你的描述和一些实际的知识,我猜想你有四个可能的瓶颈:

  • NIC
  • 内存
  • 高清吞吐量
  • CPU(速度)
  • CPU(核心)

现在内存不会是一个问题,因为,因为你的数据库只有2G,你可以caching不仅所有的键和指标,但实际上整个数据库在RAM有2G,如果你相应地调整(MyISAM-)key_buffer和/或innodb_buffer_pool_cache ! 即使使用ram <dbsize,你也可能会很好,因为通常并不是所有的db部分都是同时使用的(ymmv)。

当然RAM也用于内存表,sorting和sorting以及一些连接操作,所以你应该看看数据库查询的复杂性,以及它是否返回非常大的结果集。 我不知道,但我相信wordpress和mediawiki都不会在那里做复杂的操作。 所以只需要适量的内存。

高清是任何大型数据库通常的瓶颈,但你可以caching在内存中,你说你主要是读操作,所以我会说:对于一个普通的大型数据库,经验法则是:高清吞吐量是一个主要的瓶颈,所以:1.买高清,2.不一定买最快的,但买了很多。 在你的情况下,我会说:无论如何,它的所有caching。

至于核心:MySQL确实可以利用多核心,但主要是需要它们进行复杂的计算,程序化程序以及分类和合并操作。 Siple查询就像“从表中select*”,甚至从表中select“* …”将不会从更多的内核中受益,许多连接将会获得较小的好处,我猜你应该更喜欢在多核上使用更快的处理器。

我相信你应该检查nic作为主要瓶颈,并考虑第二个(第三,第四…)nic,这取决于主要接口上的stream量。

所以,总结一下,我会把钱花在(按照这个顺序): – 多个nic(如果这确实是一个瓶颈) – 一个快速的处理器 – 2 – 4核心 – 2-4G的RAM选项插入8G以后(反正比核心更便宜) – 最好的可用磁盘子系统(现在你不需要太多,但它会帮你在后面扩展)

干杯,尼克。

作为nikb国家,理解你的申请是很重要的,但代之以我会build议下面的经验法则。

除非只有一部分数据库被从常规中读取或写入,否则没有任何额外的内核将与您的所有数据库和辅助数据(索引等)在内存中的性能优势相匹配。 如果您有大量的并发客户端触碰到您的内容,或者您​​执行了许多后台工作(如报告或索引),则额外内核将非常有用。

如果我是你,我会select一个相当新的基于英特尔55xx系列的双路服务器,只需购买一个带有4个4GB DDR内存模块的4核超线程处理器(别让别人卖给你2/4 / 8等,55xx的使用3,6,9等等)。 这样,你不仅可以快速,轻松地在将来添加第二个相同的处理器,但由于这些芯片与即将推出的8核芯片即插即用,您可以随时更换最初获得的处理器。

希望这个对你有帮助。

Nikb的build议是健全的。 另一个考虑的方面是:

应用程序/应用程序的实例能够访问多less内存(或CPU内核或磁盘系统)?

我发现,即使CPU使用率低于25%,内存使用率很低,14GB内存的四核服务器上的应用程序运行也非常缓慢。 原来,应用程序引擎只能访问1.5GB的RAM。 即使机器只受到轻微影响,应用程序实例也已最大化。