2013-05-16 155 views
3

我有一個mysql ndb集羣(詳情如下)。問題是當我做最簡單的事情時,例如恢復使用mysqldump轉儲的數據庫時,它需要絕對年齡! IE 6小時恢復一個745MB大小的數據庫,並且在大約30個表中有大約270萬行,這些都是非常標準的東西。MySQL NDB集羣無端緩慢

我查找了瓶頸,沒有1個CPU核心超載,也沒有磁盤,也沒有網絡,所以爲什麼這麼慢?

僅供參考,在導入數據庫時​​,網絡的利用率約爲2Mbit/s,ndb節點以每秒約1MB的速度寫入磁盤......幾乎沒有利用。沒有交換...數據庫完全在內存中...沒有單個內核被一個進程超時...沒有等待狀態注意到....

我有兩臺機器,每個都有4個四核心xeon cpus,32GB RAM。在他們之間,他們舉辦一個MySQL集羣中,節點託管與VirtualBox和規格如下:

sql API * 2: 4GB ram 4 cores 
sql NDB * 2: 19GB ram 8 cores 
management node: 4GB 4 cores 

注:我運行使用ndbmtd的NDB節點時,SQL API節點使用NDB集羣連接池= 4參數。

有沒有人有任何想法爲什麼它如此緩慢?我無法找到一個瓶頸?!?

的config.ini

[ndb_mgmd default] 
DataDir=/var/lib/mysql-cluster 

[ndb_mgmd] 
HostName=mgm-alpha 
NodeId=1 

[TCP DEFAULT] 
SendBufferMemory=12M 
ReceiveBufferMemory=12M 

[ndbd default] 
NoOfReplicas=2 
DataMemory=15000M 
IndexMemory=1048M 
MaxNoOfConcurrentOperations=100000 
RedoBuffer=32M 
MaxNoOfAttributes=5000 
MaxNoOfOrderedIndexes=1000 
TimeBetweenEpochs=500 
DiskCheckpointSpeed=20M 
DiskCheckpointSpeedInRestart=100M 
MaxNoOfExecutionThreads=8 
DataDir=/var/lib/mysql-cluster 

[ndbd] 
HostName=cl1-alpha 
NodeId=2 

[ndbd] 
HostName=cl2-bravo 
NodeId=3 

[mysqld] 
HostName=sq1-alpha 
NodeId=4 

[mysqld] 
HostName=sq1-alpha 
NodeId=5 

[mysqld] 
HostName=sq1-alpha 
NodeId=6 

[mysqld] 
HostName=sq1-alpha 
NodeId=7 

[mysqld] 
HostName=sq2-bravo 
NodeId=8 

[mysqld] 
HostName=sq2-bravo 
NodeId=9 

[mysqld] 
HostName=sq2-bravo 
NodeId=10 

[mysqld] 
HostName=sq2-bravo 
NodeId=11 

的my.cnf mysql的API節點

[mysqld] 
# Options for mysqld process: 
ndbcluster 
ndb-connectstring=mgm-alpha 
default_storage_engine=ndbcluster 
ndb-mgmd-host = mgm-alpha:1186 
ndb-cluster-connection-pool=4 

[mysql_cluster] 
# Options for MySQL Cluster processes: 
ndb-connectstring=mgm-alpha # location of management server 
+0

也只是覺得我應該指出該系統是歧化緩慢。 IE導入25Mb表需要1分鐘,300Mb表佔用30分鐘,全部大致相同,兩個索引,id自動增加主索引。 – stryker

+0

如果你的評論是任何指標,它聽起來像是交換... –

+0

我已經檢查過,我可以放心地說它不...也有其他工具,如dstat顯示沒有頁面寫/讀和磁盤訪問通常是2MB左右每秒寫入所以沒有太多的事情發生。 – stryker

回答