mysql-cluster(8)——最佳实践
程序员文章站
2024-03-12 12:05:14
...
mysql-cluster系列:
- mysql-cluster(1)——简介
- mysql-cluster(2)——部署
- mysql-cluster(3)——集群管理和维护
- mysql-cluster(4)——创建内存表和磁盘表
- mysql-cluster(5)——jdbc
- mysql-cluster(6)——配置详解
- mysql-cluster(7)——基准测试
- mysql-cluster(8)——最佳实践
- mysql-cluster(9)——NDB和InnoDB区别
- mysql-cluster(10)——注意事项
本文目录:
1 集群数量
节点 | 数量 |
---|---|
MGM节点 | 1 |
NDB节点 | >=2 |
SQL节点 | >=1,尽可能多 |
2 MGM节点配置
2.1 config.ini
配置/opt/mysql/data/config.ini:
[ndb_mgmd default]
DataDir = /opt/mysql/data
[ndbd default]
NoOfReplicas = 2
DataMemory = 2G #每个数据节点中给数据分配的内存
IndexMemory = 800M #每个数据节点中给索引分配的内存
DataDir = /usr/local/mysql/data
StringMemory = 50
MaxNoOfTables = 4096 # 表的最大数量
MaxNoOfOrderedIndexes = 2048 # 有序索引的总数
MaxNoOfUniqueHashIndexes = 1024
MaxNoOfAttributes = 24576 # 可在集群中定义的属性数量
MaxNoOfTriggers = 10240 # 触发器的最大数量
MaxNoOfConcurrentTransactions = 409600 # 结点内可能的并发事务数,默认值为 4096。对于所有结点,必须将参数设置为相同的值。
MaxNoOfConcurrentOperations = 3276800 # 同时出现在更新阶段或同时锁定的记录数
# MaxNoOfLocalOperations = 55000
TimeBetweenGlobalCheckpoints = 1000 # 全局检查点操作之间的时间间隔
TimeBetweenEpochs = 100
TimeBetweenWatchdogCheckInitial = 60000
# TransactionBufferMemory = 20M
TimeBetweenLocalCheckpoints = 20 #
SchedulerSpinTimer = 400
SchedulerExecutionTimer = 100
RealTimeScheduler = 1
BackupMaxWriteSize = 2M
BackupDataBufferSize = 32M # 数据备份缓冲区大小
BackupLogBufferSize = 8M
MaxNoOfExecutionThreads = 4
TransactionDeadLockDetectionTimeOut = 15000 # 放弃事务之前,事务协调器等候另一结点执行查询的时间
BatchSizePerLocalScan = 512 # 计算锁定记录的数量
LongMessageBuffer = 16M # 在单个结点内和结点之间传递消息的内部缓冲
HeartbeatIntervalDbDb = 15000 # 每个数据结点发送心跳信号到SQL结点的间隔
HeartbeatIntervalDbApi = 15000
FragmentLogFileSize = 256M # 单个REDO日志文件的大小
NoOfFragmentLogFiles = 160 # 节点REDO日志文件的数量
[mysqld default]
################################################################################################################
#
################################################################################################################
[ndb_mgmd]
NodeId = 1
HostName = 10.5.11.85
################################################################################################################
#
################################################################################################################
[ndbd]
NodeId = 11
HostName = 10.5.11.86
datadir = /opt/mysql/data
[ndbd]
NodeId = 12
HostName = 10.5.11.87
datadir = /opt/mysql/data
################################################################################################################
# sql节点可以部署在Web应用服务器上,也可以部署在专用的服务器上,也可以和DB部署在同一台服务器上。
# 一般保留3个空sql节点,用于动态添加sql节点。
################################################################################################################
[mysqld]
NodeId = 81
HostName = 10.5.11.86
[mysqld]
NodeId = 82
HostName = 10.5.11.87
[mysqld]
[mysqld]
[mysqld]
2.2 关闭mysql服务
MGM节点实际上并不需要启动MySQL服务程序,因此建议将mysql服务的自启状态设为关闭:
chkconfig mysql off
3 NDB节点和SQL节点配置
配置/etc/my.cnf:
[MYSQLD]
user=root
character_set_server=utf8
ndbcluster
ndb-connectstring=10.5.11.85
default-storage-engine=ndbcluster
datadir=/opt/mysql/data
basedir=/usr/local/mysql
[MYSQL_CLUSTER]
ndb-connectstring=10.5.11.85
4 其他
尽可能让查询简单,避免数据的跨节点传输;
在各节点之间尽可能使用万兆网络环境互联,以减少数据在网络层传输过程中的延时。
上一篇: Kubernetes 镜像
推荐阅读
-
mysql-cluster(8)——最佳实践
-
【Kubernetes】Docker + K8s 实践之路(K8s篇)
-
K8S实践Ⅳ(Service)
-
Yahoo!的 Exceptional Performance团队为改善 Web性能带来最佳实践。他们为此进行了一系!团队实践分享:网站性能优化的34条黄金守则 博客分类: javascript收藏
-
ASP.NET缓存 方法和最佳实践
-
ASP.NET缓存 方法和最佳实践
-
ASP.NET缓存的方法和最佳实践
-
PHP 与 UTF-8 的最佳实践详细介绍
-
Activiti6.0学习实践(8)-核心api:TaskService流程任务服务
-
Spring Boot之AOP配自定义注解的最佳实践过程