我有一個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
也只是覺得我應該指出該系統是歧化緩慢。 IE導入25Mb表需要1分鐘,300Mb表佔用30分鐘,全部大致相同,兩個索引,id自動增加主索引。 – stryker
如果你的評論是任何指標,它聽起來像是交換... –
我已經檢查過,我可以放心地說它不...也有其他工具,如dstat顯示沒有頁面寫/讀和磁盤訪問通常是2MB左右每秒寫入所以沒有太多的事情發生。 – stryker