2010-04-16 56 views
1

我刚开始一份新工作,并注意到分析计算机以100Mbps连接到网络。我们针对MySQL服务器运行的ODBC查询可以轻松返回500MB +,并且在服务器处于高负载时,DBA似乎会杀死低优先级作业,因为它们需要很长时间才能运行。MySQL性能 - 100Mb以太网与1Gb以太网

我的问题是......这个服务器花了多少时间来执行请求,花了多少时间将数据返回给客户端呢?将网络连接升级到1Gbps可以提高查询速度吗?

(更新了原因):所讨论的数据库是为满足报告需求和包含海量数据而构建的。我们通常在外部应用程序(如SAS或Excel)中以粒度级别处理这些数据的子集,因此会传输大量数据。查询的结构并不是很差 - 它们非常简单,并且正在使用适当的连接/索引等。我已经从帖子的标题中删除了“查询”,因为我意识到这个问题更多的是与一般的MySQL性能而不是查询相关的性能。我很希望有人使用千兆位连接,可以通过运行返回大量数据的查询来实际量化我的一些结果,然后他们可以将连接速度限制为100Mb,然后重新运行相同的查询。希望这可以在负载相当稳定的环境中完成,以免歪曲结果。

如果以太网速度可以改善这种情况,我想要一些可量化的结果来帮助我争取升级网络连接的情况。

感谢 罗布

+0

请求到达服务器的速度越快,返回结果的速度就越快...... – 2010-04-16 22:10:52

+1

属于服务器故障,在我看来 – Earlz 2010-04-17 00:32:30

回答

2

除以查询时的数据量,你会得到你的答案。如果您接近100Mbps的容量,则会遇到IO问题。

3
  1. 基准。 MySQL有很多确定查询花费多长时间的工具。赔率是你有非常糟糕的问题。使用慢速查询日志。
  2. 你为什么要在MySQL中传输/存储500MB数据?
+2

为什么要问+1。 – TheJacobTaylor 2010-04-16 22:04:34

+0

OP在这里。感谢您的建议。更新了原来的帖子,以解决你的2分。 – 2010-04-17 00:31:06

1

我怀疑是肯定的。它应该是。

在MySQL外壳中,我将运行:在机器上

显示完整PROCESSLIST

,并检查了查询的状态。如果您看到任何类似于“从网络读取”或“写入网络”的状态,这意味着网络传输直接影响MySQL。您也可以查看IOStat结果以查看系统正在使用多少IO。如果系统位于托管交换机上,则可能还需要检查那里的负载。

编号:show processlist

编号:Status definitions

+0

OP在这里。谢谢。我跑了一个简单的选择返回100万行。查询的第一个执行状态在“写入网络”和“发送数据”之间交替30秒,然后在写入本地HDD(我可以听到它抖动)时“休眠”30秒。在“睡眠”阶段,该过程仍然可见,直到HDD写入完成后,过程仍然存在。因此,对我来说,第1步将改善本地机器上的写入时间,这不是问题,因为我可以压缩文件以节省I/O时间。它似乎花了一点时间在“写入网络”,然后“发送数据”。 – 2010-04-17 00:52:44

+0

您是否尝试确保您打开了客户端压缩?这将在传输之前自动压缩响应。你可以添加更多的网卡到机器上吗?保税网卡可以为您提供更高的吞吐量。如果您愿意,您甚至可以根据网络连接分离负载。 – TheJacobTaylor 2010-04-18 04:09:56