mysql数据库,有1100个用户,每个用户每月生成一张表,用户登录在该表内每秒上传一条数据,预计每张表一个月共86W条数据,现在我搭建了mysql-cluster环境2个NDBD节点配置为8核CPU16G内...
mysql数据库,有1100个用户,每个用户每月生成一张表,用户登录在该表内每秒上传一条数据,预计每张表一个月共86W条数据,现在我搭建了mysql-cluster 环境 2个NDBD节点 配置为8核CPU 16G内存,SQL节点有4个,使用磁盘存储这些表,引擎为ndbcluster,但是86W数据的表仍然占用33M的内存,导致NDBD节点的机器需要超级大的内存来支持,【33(M)*1100(用户)*3(3个月的表)÷1024=106GB的内存支持】,使用双备份保证一个节点挂了不影响系统使用,不知道是否配置有问题,一下的配置文件信息,项目上要求:比如总服务器(MGM NDBD)在北京,使用程序服务器(SQL)在山西、河北、广东,山西、河北、广东登录自己的服务器,只查询或使用自己的数据,北京的服务器要可以查看山西、河北、广东3个点的所有数据,如果mysql-cluster不适合,那么我应该使用那种数据库。本人纯白菜鸟,需大神们支持
[TCP DEFAULT]
SendBufferMemory=8M
ReceiveBufferMemory=8M
[NDB_MGMD DEFAULT]
portnumber=1186
datadir=/var/lib/mysql-cluster
[ndb_mgmd]
nodeid=1
hostname=192.168.2.169
datadir=/var/lib/mysql-cluster
[NDBD DEFAULT]
DataMemory=9830M
IndexMemory=2457M
BackupMaxWriteSize=1M
BackupDataBufferSize=16M
BackupLogBufferSize=4M
BackupMemory=20M
BackupReportFrequency=10
MemReportFrequency=30
LogLevelStartup=15
LogLevelShutdown=15
LogLevelCheckpoint=8
LogLevelNodeRestart=15
MaxNoOfTables=1600
MaxNoOfTriggers=3500
NoOfReplicas=2
StringMemory=25
DiskPageBufferMemory=64M
SharedGlobalMemory=384M
LongMessageBuffer=32M
MaxNoOfConcurrentTransactions=16384
BatchSizePerLocalScan=512
FragmentLogFileSize=256M
NoOfFragmentLogFiles=16
RedoBuffer=64M
MaxNoOfExecutionThreads=2
StopOnError=false
LockPagesInMainMemory=1
TimeBetweenEpochsTimeout=32000
TimeBetweenWatchdogCheckInitial=60000
TransactionInactiveTimeout=60000
HeartbeatIntervalDbDb=5000
HeartbeatIntervalDbApi=5000
MaxNoOfAttributes=200000
MaxNoOfOrderedIndexes=40000
NoOfDiskPagesToDiskAfterRestartTUP=20
###disk store
#SharedGlobalMemory=20M
#DiskPageBufferMemory=80M
#-------------------------# NDBD
[ndbd]
nodeid=2
hostname=192.168.2.110
datadir=/usr/local/mysql/data
[ndbd]
nodeid=3
hostname=192.168.2.113
datadir=/usr/local/mysql/data
#--------------------# SQL
[mysqld]
nodeid=4
hostname=192.168.2.115
[mysqld]
nodeid=5
hostname=192.168.2.223
[mysqld]
nodeid=6
hostname=192.168.2.162
[mysqld]
nodeid=7
hostname=192.168.2.164
展开