【问题标题】:Will changing from a cloud server to a dedicated server improve MySQL performance?从云服务器更改为专用服务器会提高 MySQL 的性能吗?
【发布时间】:2016-03-16 04:33:36
【问题描述】:

我目前有一个具有 2 个 CPU 和 2GB RAM 的云服务器,我注意到 MySQL 在大于 250,000 行的表上执行 SELECT 查询的速度非常慢,除非查询被缓存。该表具有所有正确的索引,并且我的查询得到了优化。

我在我的个人计算机上运行了相同的 MySQL 设置,并且查询速度要快得多。所以我认为它更多地与服务器本身有关,而不是 MySQL 查询或表设置。

我正在考虑将云服务器升级到 4GB Ram 和 4CPU 或切换到具有相同规格的专用服务器。

从云服务器更改为专用服务器会提高 MySQL 的性能吗?

【问题讨论】:

  • 取决于您的云服务器、工作负载、“慢”的含义等。
  • 如果查询没有被缓存,云服务器可能需要 30-70 秒来执行大结果的选择查询,在我的个人计算机上运行的相同查询到目前为止最多需要 12秒 - 这是在 650,000 行的表大小上运行的
  • 如果没有那么多行,这听起来很慢。但是,如果您可以在硬件 X 上比在云服务器上更快地运行它,那就意味着它会更快地切换硬件。但唯一知道的方法是测试

标签: mysql performance cloud dedicated-server


【解决方案1】:

虽然云计算使用 SAN 存储,但您将在多个虚拟机之间共享 CPU、RAM 和存储等资源。这可能会导致 I/O 操作变慢,从而导致 MySQL 查询变慢。

在专用服务器中,所有资源将仅分配给您的应用程序。因此,切换到专用服务器肯定会提高 MySQL 服务器的性能。此外,当您有数据库驱动的应用程序时,强烈建议使用 SSD 驱动器。

【讨论】:

    【解决方案2】:

    按照今天的标准,2GB 很小。你在使用 InnoDB 还是 MyISAM?缓存大小是多少?有固态硬盘吗?

    听起来表比可以缓存的要大,而且慢查询正在扫描整个表。这表示查询和/或索引没有得到很好的优化。让我们看看SELECTSHOW CREATE TABLE;可以进行更多调整。

    云是否会限制您的 IOP?这可能解释了差异。这将进一步表明我们应该研究这个查询。

    【讨论】:

      【解决方案3】:

      鉴于您的查询需要 20 秒才能在云环境中运行,我们可以排除网络延迟问题。找出瓶颈。在云上运行大型查询时尝试使用“top”。

      如果 CPU 利用率很高,请更改为高 CPU 类型,也可能是更高的内存(您也可以使用“top”查看内存利用率)。

      如果 idle 或 wait 的 %CPU 很高,则基本上表明底层磁盘是这里的瓶颈。您可以通过运行一些“fio”测试来验证这一点,或者使用“iostat”并监控查询的设备使用情况。解决方案是添加更多磁盘空间或在云端使用 SSD 设备。

      【讨论】:

        【解决方案4】:

        我总是更喜欢云。当涉及到专用服务器时,您找不到服务器使用的弹性。选择好的云架构来提升应用性能。您已经设置了适当的自动缩放、devops 方法。

        您还可以使用远程数据库连接您的应用程序,以避免对应用程序服务器的 I/O 请求。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-07-27
          • 1970-01-01
          • 1970-01-01
          • 2014-10-08
          • 2021-04-18
          • 1970-01-01
          • 2020-03-09
          • 1970-01-01
          相关资源
          最近更新 更多