我有一个mysql集群(详见下文)。问题是,当我做最简单的事情,比如恢复使用mysqldump转储的数据库时,就需要一个绝对的年龄!IE 6小时来恢复一个大小为745 db的数据库,在大约30个表中有大约270万行,这些都是非常标准的内容。
我一直在寻找瓶颈,没有一个cpu内核超载,也没有磁盘,也没有网络,那么为什么这么慢呢?
FYI,在导入数据库时,网络的利用率约为2Mbit/s,ndb节点以每秒1MB的速度写入磁盘.很难利用。没有交换..。数据库完全在内存中..。没有一个单一的核心是通过一个过程最大的.不要等-状态要注意..。
我有两台机器,每台都有4台四核xeon cpus,32 got内存。它们之间托管一个mysql集群,节点由virtualbox托管,规范如下:
sql API * 2: 4GB ram 4 cores
sql NDB * 2: 19GB ram 8 cores
management node: 4GB 4 cores注意:我使用ndbmtd运行NDB节点,sql节点使用ndb集群连接池=4 param。
有人知道为什么这么慢吗?我根本找不到一个瓶颈?!?
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=11mysql节点上的my.cnf
[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发布于 2013-11-12 21:37:39
原因之一是ndb集群不能很好地处理大型事务。在这里可以找到一些答案和建议:
https://stackoverflow.com/questions/16581673
复制相似问题