2010-04-16 58 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