目录
TiUP 是 TiDB 4.0 版本引入的集群运维工具,TiUP cluster 是 TiUP 提供的使用 Golang 编写的集群管理组件,通过 TiUP cluster 组件就可以进行日常的运维工作,包括部署、启动、关闭、销毁、弹性扩缩容、升级 TiDB 集群,以及管理 TiDB 集群参数。目前 TiUP 可以支持部署 TiDB、TiFlash、TiDB Binlog、TiCDC,以及监控系统。
服务器推荐配置
开发及测试环境
组件 CPU 内存 本地存储 网络 实例数量(最低要求)
TiDB 8 核+ 16 GB+ 无特殊要求 千兆网卡 1(可与 PD 同机器)
PD 4 核+ 8 GB+ SAS, 200 GB+ 千兆网卡 1(可与 TiDB 同机器)
TiKV 8 核+ 32 GB+ SSD, 200 GB+ 千兆网卡 3
TiFlash 32 核+ 64 GB+ SSD, 200 GB+ 千兆网卡 1
TiCDC 8 核+ 16 GB+ SAS, 200 GB+ 千兆网卡 1
生产环境
组件 CPU 内存 硬盘类型 网络 实例数量
TiDB 16 核+ 32 GB+ SAS 万兆网卡(2 块最佳) 2
PD 4核+ 8 GB+ SSD 万兆网卡(2 块最佳) 3
TiKV 16 核+ 32 GB+ SSD 万兆网卡(2 块最佳) 3
TiFlash 48 核+ 128 GB+ 1 or more SSDs 万兆网卡(2 块最佳) 2
TiCDC 16 核+ 64 GB+ SSD 万兆网卡(2 块最佳) 2
监控 8 核+ 16 GB+ SAS 千兆网卡 1
在线部署 TiUP 组件
选择一台服务器作为主控机进行如下操作:
1. 安装 TiUP 工具
curl --proto '=https' --tlsv1.2 -sSf https://tiup-mirrors.pingcap.com/install.sh | sh
2. 设置 TiUP 环境变量
source .bash_profile
3. 确认 TiUP 工具是否安装
which tiup
4. 安装 TiUP cluster 组件
tiup cluster
5. 如果已经安装,则更新 TiUP cluster 组件至最新版本
tiup update --self && tiup update cluster
6. 验证当前 TiUP cluster 版本信息
tiup --binary cluster
设置ssh免密登录
主控机客户端生成公私钥:(一路回车默认即可)
ssh-keygen
上传公钥到其他服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.xxx
测试
ssh root@192.168.1.xxx
编辑集群拓扑文件并启动集群
文件名topology.yaml,配置仅参考
global:
user: "tidb"
ssh_port: 22
deploy_dir: "/tidb-deploy"
data_dir: "/tidb-data"
pd_servers:
- host: 192.168.1.1
tidb_servers:
- host: 192.168.1.1
tikv_servers:
- host: 192.168.1.2
- host: 192.168.1.3
- host: 192.168.1.4
tiflash_servers:
- host: 192.168.1.5
cdc_servers:
- host: 192.168.1.6
monitoring_servers:
- host: 192.168.1.1
grafana_servers:
- host: 192.168.1.1
alertmanager_servers:
- host: 192.168.1.1
执行 deploy 命令
执行 deploy 命令前,先使用 check 及 check --apply 命令,检查和自动修复集群存在的潜在风险
tiup cluster check ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
tiup cluster check ./topology.yaml --apply --user root [-p] [-i /home/root/.ssh/gcp_rsa]
然后执行 deploy 命令部署 TiDB 集群
tiup cluster deploy tidb-test v5.0.2 ./topology.yaml --user root [-p] [-i /home/root/.ssh/gcp_rsa]
查看 TiUP 管理的集群情况
tiup cluster list
检查部署的 TiDB 集群情况
tiup cluster display tidb-test
启动集群
tiup cluster start tidb-test
日志目录
/tidb-deploy/tikv-20160/log
修改密码
tidb默认密码为空,修改密码需找一台有mysql client的机器
mysql -h 192.168.1.1 -P 4000 -u root
ALTER USER 'root' IDENTIFIED BY 'root';
flush privileges ;
quit
扩容
tiup cluster scale-out tidb-test scale-out.yaml
缩容
tiup cluster scale-in tidb-test --node 192.168.1.xxx:<ID>
下线需要一定时间,下线节点的状态变为 Tombstone 就说明下线成功。
卸载集群
tiup cluster destroy tidb-test --force
使用sysbench进行性能测试
更新epel第三方软件库
yum install -y epel-release
安装sysbench工具
yum install -y sysbench
基准测试脚本在/usr/share/sysbench目录下
生成测试表
sudo sysbench --db-driver=mysql --mysql-host=192.168.1.xxx --mysql-port=4000 \
--mysql-user=root --mysql-password=root --mysql-db=bigdata \
--range_size=100 --table_size=100000 --threads=2 --events=0 --time=60 \
--rand-type=uniform /usr/share/sysbench/oltp_read_only.lua prepare
运行语句进行测试(表的读性能统计基于表的数据是100000)
sudo sysbench --db-driver=mysql --mysql-host=192.168.1.xxx --mysql-port=4000 \
--mysql-user=root --mysql-password=root --mysql-db=bigdata \
--range_size=100 --table_size=100000 --threads=2 --events=0 --time=60 \
--rand-type=uniform /usr/share/sysbench/oltp_read_only.lua run
运行结果如下:
SQL statistics:
queries performed: #性能统计
read: 32018 # 读统计 (select语句)
write: 0 # 写统计 (insert、delete、update语句)
other: 4574 # 其他语句 (如commit等)
total: 36592 # 总执行语句之和
transactions: 2287 (226.03 per sec.) #总事务数(每秒处理的事务)
queries: 36592 (3616.44 per sec.) #查询性能(每秒的查询性能)
ignored errors: 0 (0.00 per sec.)
reconnects: 0 (0.00 per sec.)
General statistics:
total time: 10.1123s # 总时长
total number of events: 2287 # 事务总数
Latency (ms): #延迟时间
min: 107.13 # 最小延迟时间
avg: 140.78 # 平均延迟
max: 268.09 # 最大延迟
95th percentile: 161.51 # 95%以上语句响应时间
sum: 321960.64 # 总延迟时长
Threads fairness: # 线程公平性
events (avg/stddev): 71.4688/0.61
execution time (avg/stddev): 10.0613/0.04
清除测试表
sudo sysbench --db-driver=mysql --mysql-host=192.168.1.xxx --mysql-port=4000 \
--mysql-user=root --mysql-password=root --mysql-db=bigdata \
--range_size=100 --table_size=100000 --threads=2 --events=0 --time=60 \
--rand-type=uniform /usr/share/sysbench/oltp_read_only.lua cleanup
参考地址:https://docs.pingcap.com/zh/tidb/stable/production-deployment-using-tiup