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