单独的应用程序和数据库服务器与一体机的性能

时间:2012-12-18 20:50:24

标签: database performance ubuntu lamp hardware-infrastructure

我们正在迁移需要合适数据库设置的现有应用程序。我们在两个服务器配置上运行了一个简单的mysqlslap测试 - 结合app&数据库服务器,单独的应用程序和2个db服务器(主/从):

mysqlslap --auto-generate-sql --concurrency=50 --number-of-queries=1000 --number-char-cols=50 --number-int-cols=50 -vv

  • 即使使用相同的实例大小并从数据库服务器运行,单独服务器的结果也会变慢。
  • 在另一项测试中,使用microtime&循环查询, - 服务器之间存在显着的延迟。示例:测试1合并后为0.01秒,单独为0.1秒,0.2(合并)与3.0(单独)相比。

我的问题:

  1. 这些是预期的结果吗?
  2. 有没有办法最小化服务器之间的延迟?
  3. 我们无法使用sysbench来匹配现有服务器 - 我们的测试是否令人满意,还是有更好的选择?

1 个答案:

答案 0 :(得分:3)

不是MySQL专家,但嘿,现实并不关心;)
物理学是一样的。

  1. 是肯定的。你介绍一个网络,有延迟。
  2. 请求,批处理。 保证45纳秒的延迟。一般来说:不要批量请求。
  3. 一般可能是一小部分。 我遇到的数据库服务器有几百个。 1000查询一般可能是一小部分。
  4. 最后,你有延迟 - 处理它。这样做的主要方法是询问批量数据,而不是逐行。然后了解“延迟”是一个线程的东西 - 由于更高的容量,吞吐量仍然会更高。这是一个权衡。

    如果对你很好:所有较大的应用程序都会拆分,所以它不是你可以处理的东西。但是,有助于拥有一个真正的数据库服务器。基本上,机器应该足够强大,不会成为另一个瓶颈。您获得延迟,您还可以获得可扩展性。通常,可伸缩性比延迟更有价值。

    同样,这是物理学 - 这里没有什么特别的MySQL。