2012-12-18 66 views
0

我們正在遷移需要體面的數據庫設置的現有應用程序。我們已經用完的兩個服務器配置一個簡單的測試mysqlslap - 聯合應用& DB服務器,單獨的應用程序&2分貝服務器(主/從):獨立應用程序和數據庫服務器與一體機的性能

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,與3.0(單獨)相比,測試1爲0.2(合併)。

我的問題:

  1. 這些是預期的結果?
  2. 有沒有辦法使服務器之間的延遲最小化?
  3. 我們無法使用sysbench與現有服務器進行匹配 - 我們執行的測試是否令人滿意或者是否有更好的替代方案?

回答

2

不是MySQL的專家,但嘿,現實並不在意;)
物理是一樣的。

  1. 是的。你介紹一個網絡,有延遲。
  2. 請求批次。 保證45納秒的延遲。一般:不要提出小批量的請求。
  3. 一般可能是一個小集。我曾經被數百個數據庫服務器打過。一般來說1000個查詢可能是一個小集合。

最後,你有潛伏期 - 處理它。這樣做的主要方法是要求批量數據,而不是逐行。然後明白,「延遲」是一個線程的東西 - 由於更高的容量,吞吐量仍然會更高。這是一個折中。

如果對你很好:所有較大的應用程序都會拆分,所以它不是這樣,你不能處理。雖然幫助建立真正的數據庫服務器。基本上這臺機器應該足夠強大,不會成爲另一個瓶頸。你得到延遲,你也獲得了可擴展性。通常,可擴展性比延遲更值得。

再一次,這是物理 - 對MySQL來說這不是什麼特殊的東西。

相關問題