【问题标题】:Tuning SSD MySql Performance调整 SSD MySql 性能
【发布时间】:2010-10-02 02:23:00
【问题描述】:

我正在测试与 MySql 一起使用的 SSD,但看不到任何性能优势。这让我觉得我一定做错了什么。

设置如下:

  • 至强 5520 2.26 Ghz 四核
  • 12 GB 内存
  • RAID 1 中 300GB 15k
  • RAID 1 中的 64GB SSD

为了测试,我移动了 SSD 上的 mysql 目录。

我导入了一个包含 300 万行的表。然后导入同一个表,其中数据和索引目录符号链接到 15k 驱动器。

通过 mysqldump 的转储将数据加载到表中,15k 驱动器显示出比 SSD 更快的插入速率:

  • 15k ~= 35,800 次插入/秒
  • SSD != 27,000 次插入/秒

然后我通过执行 'SELECT * FROM table INTO OUTFILE '/tmp/table.txt' 测试 SELECT 速度:

  • 15kk ~= 3,000,000 行在 4.19 秒内
  • SSD ~= 3,000,000 行在 4.21 秒内

SELECTS 几乎相同,实际上 SSD 上的写入速度较慢,这看起来根本不对。对我接下来应该研究什么有什么想法吗?


额外说明:我使用标准更改调整了 SSD:noatime 和 noob-scheduler

【问题讨论】:

    标签: mysql performance optimization solid-state-drive


    【解决方案1】:

    两点:

    1. 对于您的 15k 驱动器的写入速度比 SSD 快,我认为这不足为奇。闪存写入缓慢。在内部,NAND 闪存是面向页面的(页面>扇区)。因此,为了写入一个扇区,SSD 读取页面,替换 512 字节,擦除页面,最后写入页面。

    2. 您的测试是完全连续的。您的写入测试是通过转储加载的,而您的读取测试是“SELECT *...”。 SSD 驱动器的真正优势在于其随机读取速度。您的测试并没有强制 15k HD 经常寻道,所以您真正测试的只是接口速度。

    【讨论】:

    • 查看these slides 可以很好地解释 MySQL 中的随机写入与顺序写入。最佳性能是传统 HDD 上的顺序文件和 SSD 上的随机文件。
    【解决方案2】:

    您的所有测试都应该在类似的条件下进行。 IE。初始化磁盘、重新启动、加载数据、运行选择。关闭。然后重复。如果这给出了更好的指示,那么关于一个比另一个更好或更差。

    完成此操作后,您就可以调查测试是否真的对 15 磁盘征税。如果这两个测试都没有给您的系统带来压力,那么我会说您还没有发现需要进行特定升级的瓶颈,例如这个。

    一旦你有,然后请发布结果。这将使分析和调整更容易。

    【讨论】:

      【解决方案3】:

      我会使用一些更好的工具来运行测试。一个这样的工具是 Linux 的 FIO,它可以为您模拟各种读/写 IOPS 场景。我建议您检查 RAID 控制器并确保它对 SSD 驱动器进行了优化。较旧的 RAID 控制器从未为 SSD 设计,它们通常表现不佳。例如,对于戴尔服务器,您需要从未有过的 PERC 710H 才能充分发挥 SSD 的速度。智能 RAID 控制器还可以将 SSD 用于缓存在常规机械驱动器之前,从而提高整体读/写性能。

      我最近写了一篇关于这个主题的博文,你可能会觉得有帮助。我还包括了一些基准测试结果 SSD 与机械磁盘。

      http://www.juhavehnia.com/2015/05/using-ssds-to-improve-mysql-performance.html

      祝你考试顺利, Juha Vehnia

      【讨论】:

        猜你喜欢
        • 2012-02-29
        • 2021-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多