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 / 问题 / 101090
Accepted
The How-To Geek
The How-To Geek
Asked: 2010-01-09 23:29:55 +0800 CST2010-01-09 23:29:55 +0800 CST 2010-01-09 23:29:55 +0800 CST

MySQL 数据库服务器需要更多 RAM 还是更多内核?

  • 772

这是场景,我希望得到您的专家建议:

我目前有大约 2GB 的数据库,一年内可能会翻一番。我想要我要订购的专用数据库服务器的最佳服务器性能,它将用作运行 WordPress、论坛和 mediawiki 的流量相当大的网站的后端。大多数数据库流量应该是只读的。

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

[编辑] 作为后续,最终在具有 8 GB RAM 的 8 核服务器上获得了一笔不错的交易,所以就这样做了。很高兴知道我会有很大的成长空间。

performance hardware mysql memory multi-core
  • 3 3 个回答
  • 25868 Views

3 个回答

  • Voted
  1. Best Answer
    nikb
    2010-01-10T00:18:10+08:002010-01-10T00:18:10+08:00

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

    • 网卡
    • 内存
    • 高清吞吐量
    • 中央处理器(速度)
    • 中央处理器(核心)

    现在 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 的选项(无论如何都比核心便宜)- 可能的最佳磁盘子系统(您现在不需要太多,但它会帮助您以后扩展)

    干杯,尼克。

    • 8
  2. Chopper3
    2010-01-10T01:11:05+08:002010-01-10T01:11:05+08:00

    正如 nikb 所说,了解您的应用程序很重要,但为了代替了解这一点,我建议遵循以下经验法则。

    除非只定期读取或写入您的数据库的一部分,否则没有多少额外的内核可以与将所有数据库和辅助数据(索引等)都放在内存中的性能优势相匹配。如果您有很多并发客户端访问您或您执行大量后台工作(例如报告或索引),那么额外的内核将很有用。

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

    希望这个对你有帮助。

    • 7
  3. pcapademic
    2010-01-11T02:21:53+08:002010-01-11T02:21:53+08:00

    Nikb 的建议是合理的。另一个需要考虑的领域:

    您的应用程序/应用程序架构的实例可以访问多少 RAM(或 CPU 内核或磁盘系统)?

    我看到了这样一种情况,即具有 14GB RAM 的四核服务器上的应用程序运行非常缓慢,即使 CPU 使用率低于 25% 并且 RAM 使用率很低。原来,应用引擎只能访问 1.5GB 的 RAM。即使机器受到轻微影响,应用程序实例也已达到极限。

    • 0

相关问题

  • 在 Linux Xen VPS 上优化 Apache 和 MySQL

  • 如何选择 MySQL 数据库引擎

  • 上线的第一天:如何不杀死您的网站

  • IIS 优化

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

Sidebar

Stats

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

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

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

    • 30 个回答
  • Marko Smith

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

    • 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
    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