The*_*eek 6 mysql hardware performance memory multi-core
这是场景,我希望您提供有关以下方面的专家建议:
我目前有大约 2GB 的数据库,一年后可能会翻一番。我想要为我要订购的专用数据库服务器提供最佳服务器性能,该服务器将用作运行 WordPress、论坛和 mediawiki 的流量相当大的站点的后端。大多数数据库流量应该是只读的。
所以问题是,我真的需要超过 4GB 的 RAM 吗?我应该选择 8 核还是 4 核?一个比另一个重要吗?
[编辑] 作为后续,最终在具有 8 GB RAM 的 8 核服务器上获得了很多优惠,所以就这样做了。很高兴知道我会有很大的成长空间。
小智 7
有趣的问题。请先尝试定义当前应用程序的瓶颈。根据你的描述和一些实践知识,我猜你有四个可能的瓶颈:
现在 ram 不会成为问题,因为由于您的 db 只有 2G,您不仅可以缓冲所有键和索引,而且实际上 ram 中的整个 db 都有 2G,如果您相应地调整 (MyISAM-) key_buffer 和/或 innodb_buffer_pool_cache !即使使用 ram < dbsize,您也可能没问题,因为通常不会同时使用 db 的所有部分 (ymmv)。
当然 ram 也用于内存表、排序和排序以及一些连接操作,所以你应该看看你的数据库查询的复杂性,以及它是否返回非常大的结果集。我不知道,但我相信 wordpress 和 mediawiki 在那里都没有真正复杂的操作。因此,只需获得适量的 ram。
HD 是任何大型数据库的常见瓶颈,但无论如何您的都可以缓存在 ram 中,并且您说您主要进行读取操作,所以我会说:对于普通的大型数据库,经验法则是:高清吞吐量是一个主要的瓶颈,所以:1.买高清,2.不一定买最快的,但买很多。在你的情况下,我会说:无论如何它都被缓存了。
至于核心:MySQL确实可以利用很多核心,但它主要需要它们来进行复杂的计算、过程程序和排序和合并操作。像“Select * from table”或什至 select * from table where...这样的简单查询不会从更多内核中受益。许多连接将获得较小的好处。我猜你应该更喜欢更快的处理器而不是许多内核。
我相信您应该检查网卡是否是主要瓶颈,并考虑第二个(第三、第四...)网卡,具体取决于您的主要接口上的流量。
所以,总而言之,我会把钱花在(按这个顺序): - 不止一个网卡(如果这确实是一个瓶颈) - 一个快速的处理器 - 2 - 4 个内核 - 2-4G 内存以后插入 8G 的选项(无论如何比内核便宜) - 最好的可能的磁盘子系统(你现在不需要太多,但它会帮助你以后扩展)
干杯,尼克。
正如 nikb 所说,了解您的应用程序很重要,但为了代替了解这一点,我建议遵循以下经验法则。
除非定期读取或写入数据库的一部分,否则任何额外的内核都无法与将所有数据库和辅助数据(索引等)放在内存中的性能优势相提并论。如果您有大量并发客户端访问您或者您执行大量后台工作(例如报告或索引),则额外的内核将非常有用。
如果我是你,我会选择一个相当新的基于 Intel 55xx 系列的双插槽服务器,然后购买一个带有 3 个 4GB DDR 内存模块的 4 核超线程处理器(不要让别人卖给你 2/4/ 8 等,55xx 使用 3、6、9 等都可以)。这样,您不仅可以在未来非常快速、轻松地添加第二个相同的处理器,而且由于这些芯片与即将推出的 8 核芯片即插即用,您可以随时更换最初获得的处理器。
希望这个对你有帮助。