2010-09-12 53 views
1

我有一個22個機器羣集,具有通用的NFS安裝。在每臺機器上,我可以啓動一個新的MySQL實例。我完成了創建一個約有7100萬條目的表格,並開始了一個ADD INDEX操作。已經超過了12個小時,手術仍在繼續。所以,我登錄到我的集羣中的其他機器的一個東西,開始使用這臺機器上的MySQL守護進程的新實例:在數據庫的上下文中利用集羣的力量?

mysqld_safe --user=username 

再創造了在同一臺機器上的一個MySQL客戶端連接到數據庫。問題是,我使用我用來啓動客戶端的第一臺機器上的確切聲明:

mysql --socket=/homes/username/mysql/mysql/tmp/mysql.sock -u root -p 

我能看到所有的數據庫和表,從該客戶的預期(由於潛在的NFS掛載)。現在,如果我想創建一個新的表或變更表(比當前正被加入該指數的另外一個),我有兩個問題:

  1. 是 利用這個連的正確方法簇?或者說,假設我面前有相當多的數據挖掘任務,我如何設置MySQL(在羣集上沒有root權限)來加速任務?
  2. 我用來連接到mysql的語句使用與第一臺機器相同的mysql.sock文件。這有什麼影響?我的意思是,我最終會面臨什麼奇怪的情況?
  3. 我會有任何性能上的提升嗎?或者我會結束 減慢發生在不同的 機器上的索引操作 ?
+1

你是說你正在運行幾個mysql實例,指向NFS掛載上的相同數據庫文件? – nos 2010-09-12 16:45:41

+0

@nos:現在還沒有幾個,只有2個。我從來沒有想過它會工作,認爲MySQL會拋出一個錯誤,但它讓我創建一個實例。 – Legend 2010-09-12 16:51:22

+0

在考慮集羣數據庫服務器之前,您是否分析了瓶頸?你用完了RAM嗎?在CPU之外還是有問題的磁盤/網絡性能? – 2010-09-12 16:53:16

回答

3

這將無法穩定工作mysqld是不是爲此。另外,NFS的開銷並不理想。

您可能需要製作一堆slave mysqld實例,並行化客戶端訪問。

+0

謝謝你。我擔心在我的情況下NFS會成爲一個詛咒。 – Legend 2010-09-12 17:24:24

相關問題