暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Tidb 部署前环境与系统配置检查

原创 逆风飞翔 2022-02-11
3594

1 TiDB 软件和硬件环境建议配置
TiDB 作为一款开源分布式 NewSQL 数据库,可以很好的部署和运行在 Intel 架构服务器环境、ARM 架构的服务器
环境及主流虚拟化环境,并支持绝大多数的主流硬件网络。作为一款高性能数据库系统,TiDB 支持主流的Linux 操作系统环境。

3.1.1 Linux 操作系统版本要求
Linux 操作系统平台 版本
Red Hat Enterprise Linux 7.3 及以上的 7.x 版本
CentOS 7.3 及以上的 7.x 版本
Oracle Enterprise Linux 7.3 及以上的 7.x 版本
Ubuntu LTS 16.04 及以上的版本
注意:
目前尚不支持 Red Hat Enterprise Linux 8.0、CentOS 8 Stream 和 Oracle Enterprise Linux 8.0,因为
目前对这些平台的测试还在进行中。
不计划支持 CentOS 8 Linux,因为 CentOS 的上游支持将于 2021 年 12 月 31 日终止。
TiDB 将不再支持 Ubuntu 16.04。强烈建议升级到 Ubuntu 18.04 或更高版本。
其他 Linux 操作系统版本(例如 Debian Linux 和 Fedora Linux)也许可以运行 TiDB,但尚未得到 TiDB 官方支持。

3.1.2 软件配置要求
3.1.2.1 中控机软件配置
软件 版本
sshpass 1.06 及以上
TiUP 1.5.0 及以上
注意:
中控机需要部署TiUP 软件来完成 TiDB 集群运维管理。

3.1.2.2 目标主机建议配置软件
软件 版本
sshpass 1.06 及以上
numa 2.0.12 及以上
tar 任意
84
3.1.3 服务器建议配置
TiDB 支持部署和运行在 Intel x86-64 架构的 64 位通用硬件服务器平台或者 ARM 架构的硬件服务器平台。对于开
发,测试,及生产环境的服务器硬件配置(不包含操作系统 OS 本身的占用)有以下要求和建议:
3.1.3.1 开发及测试环境
组件 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
注意:
验证测试环境中的 TiDB 和 PD 可以部署在同一台服务器上。
如进行性能相关的测试,避免采用低性能存储和网络硬件配置,防止对测试结果的正确
性产生干扰。
TiKV 的 SSD 盘推荐使用 NVME 接口以保证读写更快。
如果仅验证功能,建议使用TiDB 数据库快速上手指南进行单机功能测试。
TiDB 对于磁盘的使用以存放日志为主,因此在测试环境中对于磁盘类型和容量并无特殊
要求。
3.1.3.2 生产环境
组件 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
注意:
生产环境中的 TiDB 和 PD 可以部署和运行在同服务器上,如对性能和可靠性有更高的要
求,应尽可能分开部署。


生产环境强烈推荐使用更高的配置。
TiKV 硬盘大小配置建议 PCI-E SSD 不超过 2 TB,普通 SSD 不超过 1.5 TB。 TiFlash 支持多盘部署。 TiFlash 数据目录的第一块磁盘推荐用高性能 SSD 来缓冲 TiKV 同步数据的实时写入,该盘
性能应不低于 TiKV 所使用的磁盘,比如 PCI-E SSD。并且该磁盘容量建议不小于总容量的
10%,否则它可能成为这个节点的能承载的数据量的瓶颈。而其他磁盘可以根据需求部
署多块普通 SSD,当然更好的 PCI-E SSD 硬盘会带来更好的性能。
TiFlash 推荐与 TiKV 部署在不同节点,如果条件所限必须将 TiFlash 与 TiKV 部署在相同节点,
则需要适当增加 CPU 核数和内存,且尽量将 TiFlash 与 TiKV 部署在不同的磁盘,以免互相
干扰。
TiFlash 硬盘总容量大致为:整个 TiKV 集群的需同步数据容量 / TiKV 副本数 * TiFlash副本数。例如整体 TiKV 的规划容量为 1 TB、TiKV 副本数为 3、TiFlash 副本数为 2,则TiFlash 的推荐总容量为 1024 GB / 3 * 2。用户可以选择同步部分表数据而非全部,具体
容量可以根据需要同步的表的数据量具体分析。
TiCDC 硬盘配置建议 1 TB+ PCIE-SSD。
3.1.4 网络要求
TiDB 作为开源分布式 NewSQL 数据库,其正常运行需要网络环境提供如下的网络端口配置要求,管理员可根
据实际环境中 TiDB 组件部署的方案,在网络侧和主机侧开放相关端口:
组件 默认端口 说明
TiDB 4000 应用及 DBA 工具访问通信端口
TiDB 10080 TiDB 状态信息上报通信端口
TiKV 20160 TiKV 通信端口
TiKV 20180 TiKV 状态信息上报通信端口
PD 2379 提供 TiDB 和 PD 通信端口
PD 2380 PD 集群节点间通信端口
TiFlash 9000 TiFlash TCP 服务端口
TiFlash 8123 TiFlash HTTP 服务端口
TiFlash 3930 TiFlash RAFT 服务和 Coprocessor 服务端口
TiFlash 20170 TiFlash Proxy 服务端口
TiFlash 20292 Prometheus 拉取 TiFlash Proxy metrics 端口
TiFlash 8234 Prometheus 拉取 TiFlash metrics 端口
Pump 8250 Pump 通信端口
Drainer 8249 Drainer 通信端口
CDC 8300 CDC 通信接口
Prometheus 9090 Prometheus 服务通信端口
Node_exporter 9100 TiDB 集群每个节点的系统信息上报通信端口
Blackbox_exporter 9115 Blackbox_exporter 通信端口,用于 TiDB 集群端口监控
Grafana 3000 Web 监控服务对外服务和客户端 (浏览器) 访问端口
Alertmanager 9093 告警 web 服务端口
Alertmanager 9094 告警通信端口
86
组件 默认端口 说明
3.1.5 客户端 Web 浏览器要求
TiDB 提供了基于 Grafana 的技术平台,对数据库集群的各项指标进行可视化展现。采用支持 Javascript 的微软 IE、Google Chrome、Mozilla Firefox 的较新版本即可访问监控入口。
3.2 TiDB 环境与系统配置检查
本文介绍部署 TiDB 前的环境检查操作,以下各项操作按优先级排序。
3.2.1 在 TiKV 部署目标机器上添加数据盘 EXT4 文件系统挂载参数
生产环境部署,建议使用 EXT4 类型文件系统的 NVME 类型的 SSD 磁盘存储 TiKV 数据文件。这个配置方案为最
佳实施方案,其可靠性、安全性、稳定性已经在大量线上场景中得到证实。
使用 root 用户登录目标机器,将部署目标 机器数据盘格式化成 ext4 文件系统,挂载时添加 nodelalloc 和
noatime 挂载参数。nodelalloc 是必选参数,否则 TiUP 安装时检测无法通过;noatime 是可选建议参数。
注意:
如果你的数据盘已经格式化成 ext4 并挂载了磁盘,可先执行 umount /dev/nvme0n1p1 命令卸
载,从编辑 /etc/fstab 文件步骤开始执行,添加挂载参数重新挂载即可。
以 /dev/nvme0n1 数据盘为例,具体操作步骤如下:
1. 查看数据盘。
fdisk -l
Disk /dev/nvme0n1: 1000 GB
2. 创建分区。
parted -s -a optimal /dev/nvme0n1 mklabel gpt -- mkpart primary ext4 1 -1
注意:
使用lsblk命令查看分区的设备号:对于nvme磁盘,生成的分区设备号一般为nvme0n1p1;
对于普通磁盘(例如 /dev/sdb),生成的分区设备号一般为 sdb1。
3. 格式化文件系统。
mkfs.ext4 /dev/nvme0n1p1
4. 查看数据盘分区 UUID。
本例中 nvme0n1p1 的 UUID 为 c51eb23b-195c-4061-92a9-3fad812cc12f。
lsblk -f
NAME FSTYPE LABEL UUID MOUNTPOINT
sda
├─sda1 ext4 237b634b-a565-477b-8371-6dff0c41f5ab /boot
├─sda2 swap f414c5c0-f823-4bb1-8fdf-e531173a72ed
└─sda3 ext4 547909c1-398d-4696-94c6-03e43e317b60 /
sr0
nvme0n1
└─nvme0n1p1 ext4 c51eb23b-195c-4061-92a9-3fad812cc12f
5. 编辑 /etc/fstab 文件,添加 nodelalloc 挂载参数。
vi /etc/fstab
UUID=c51eb23b-195c-4061-92a9-3fad812cc12f /data1 ext4 defaults,nodelalloc,noatime 0 2
6. 挂载数据盘。
mkdir /data1 && \
mount -a
7. 执行以下命令,如果文件系统为 ext4,并且挂载参数中包含 nodelalloc,则表示已生效。
mount -t ext4 /dev/nvme0n1p1 on /data1 type ext4 (rw,noatime,nodelalloc,data=ordered)

3.2.2 检测及关闭系统 swap
TiDB 运行需要有足够的内存。如果内存不足,不建议使用 swap 作为内存不足的缓冲,因为这会降低性能。建
议永久关闭系统 swap。

要永久关闭 swap,可执行以如下命令:
echo "vm.swappiness = 0">> /etc/sysctl.conf
swapoff -a && swapon -a
sysctl -p

注意:
一起执行 swapoff -a 和 swapon -a 命令是为了刷新 swap,将 swap 里的数据转储回内存,并清空 swap 里的数据。不可省略 swappiness 设置而只执行 swapoff -a;否则,重启后swap 会再次自动打开,使得操作失效。
执行 sysctl -p 命令是为了在不重启的情况下使配置生效。

3.2.3 检测及关闭目标部署机器的防火墙
本段介绍如何关闭目标主机防火墙配置,因为在 TiDB 集群中,需要将节点间的访问端口打通才可以保证读写
请求、数据心跳等信息的正常的传输。在普遍线上场景中,数据库到业务服务和数据库节点的网络联通都是
在安全域内完成数据交互。如果没有特殊安全的要求,建议将目标节点的防火墙进行关闭。否则建议按照端
口使用规则,将端口信息配置到防火墙服务的白名单中。

1. 检查防火墙状态(以 CentOS Linux release 7.7.1908 (Core) 为例)
sudo firewall-cmd --state
sudo systemctl status firewalld.service
2. 关闭防火墙服务
sudo systemctl stop firewalld.service
3. 关闭防火墙自动启动服务
sudo systemctl disable firewalld.service
4. 检查防火墙状态
sudo systemctl status firewalld.service

3.2.4 检测及安装 NTP 服务
TiDB 是一套分布式数据库系统,需要节点间保证时间的同步,从而确保 ACID 模型的事务线性一致性。目前解
决授时的普遍方案是采用 NTP 服务,可以通过互联网中的 pool.ntp.org 授时服务来保证节点的时间同步,也
可以使用离线环境自己搭建的 NTP 服务来解决授时。
采用如下步骤检查是否安装 NTP 服务以及与 NTP 服务器正常同步:
1. 执行以下命令,如果输出 running 表示 NTP 服务正在运行:
sudo systemctl status ntpd.service

ntpd.service - Network Time Service
Loaded: loaded (/usr/lib/systemd/system/ntpd.service; disabled; vendor preset: disabled)
Active: active (running) since 一 2017-12-18 13:13:19 CST; 3s ago
若返回报错信息 Unit ntpd.service could not be found.,请尝试执行以下命令,以查看与 NTP
进行时钟同步所使用的系统配置是 chronyd 还是 ntpd:
sudo systemctl status chronyd.service
chronyd.service - NTP client/server
Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2021-04-05 09:55:29 EDT; 3 days ago
若发现系统既没有配置 chronyd 也没有配置 ntpd ,则表示系统尚未安装任一服务。此时,应先安装其
中一个服务,并保证它可以自动启动,默认使用 ntpd。
如果你使用的系统配置是 `chronyd`,请直接执行步骤 3。

2. 执行 ntpstat 命令检测是否与 NTP 服务器同步:
注意:
Ubuntu 系统需安装 ntpstat 软件包。
ntpstat
如果输出 synchronised to NTP server,表示正在与 NTP 服务器正常同步:
synchronised to NTP server (85.199.214.101) at stratum 2
time correct to within 91 ms
polling server every 1024 s
以下情况表示 NTP 服务未正常同步:
unsynchronised
以下情况表示 NTP 服务未正常运行:
Unable to talk to NTP daemon. Is it running
3. 执行 chronyc tracking 命令查看 Chrony 服务是否与 NTP 服务器同步。

注意:
该操作仅适用于使用 Chrony 的系统,不适用于使用 NTPd 的系统。
chronyc tracking
如果该命令返回结果为 Leap status : Normal,则代表同步过程正常。
Reference ID : 5EC69F0A (ntp1.time.nl)
Stratum : 2
Ref time (UTC) : Thu May 20 15:19:08 2021
System time : 0.000022151 seconds slow of NTP time
Last offset : -0.000041040 seconds
RMS offset : 0.000053422 seconds
Frequency : 2.286 ppm slow
Residual freq : -0.000 ppm
Skew : 0.012 ppm
Root delay : 0.012706812 seconds
Root dispersion : 0.000430042 seconds
Update interval : 1029.8 seconds
Leap status : Normal
如果该命令返回结果如下,则表示同步过程出错:
Leap status : Not synchronised
如果该命令返回结果如下,则表示 Chrony 服务未正常运行:
506 Cannot talk to daemon

如果要使 NTP 服务尽快开始同步,执行以下命令。可以将 pool.ntp.org 替换为你的 NTP 服务器:
sudo systemctl stop ntpd.service && \
sudo ntpdate pool.ntp.org && \
sudo systemctl start ntpd.service

如果要在 CentOS 7 系统上手动安装 NTP 服务,可执行以下命令:
sudo yum install ntp ntpdate && \
sudo systemctl start ntpd.service && \
sudo systemctl enable ntpd.service
3.2.5 检查和配置操作系统优化参数
在生产系统的 TiDB 中,建议对操作系统进行如下的配置优化:

1. 关闭透明大页(即 Transparent Huge Pages,缩写为 THP)。数据库的内存访问模式往往是稀疏的而非连续的。当高阶内存碎片化比较严重时,分配 THP 页面会出现较高的延迟。

2. 将存储介质的 I/O 调度器设置为 noop。对于高速 SSD 存储介质,内核的 I/O 调度操作会导致性能损失。将调度器设置为 noop 后,内核不做任何操作,直接将 I/O 请求下发给硬件,以获取更好的性能。同时,noop 调度器也有较好的普适性。

3. 为调整 CPU 频率的 cpufreq 模块选用 performance 模式。将 CPU 频率固定在其支持的最高运行频率上,不
进行动态调节,可获取最佳的性能。

采用如下步骤检查操作系统的当前配置,并配置系统优化参数:

1. 执行以下命令查看透明大页的开启状态。
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
注意:
[always] madvise never 表示透明大页处于启用状态,需要关闭。

2. 执行以下命令查看数据目录所在磁盘的 I/O 调度器。假设在 sdb、sdc 两个磁盘上创建了数据目录。
[root@zwrac2 ~]# cat /sys/block/sd[bc]/queue/scheduler
noop [deadline] cfq
noop [deadline] cfq
注意:
noop [deadline] cfq 表示磁盘的 I/O 调度器使用 deadline,需要进行修改。

3. 执行以下命令查看磁盘的唯一标识 ID_SERIAL。
udevadm info --name=/dev/sdb | grep ID_SERIAL

[root@zwrac2 ~]# udevadm info --name=/dev/sda | grep ID_SERIAL
E: ID_SERIAL=3600508b1001c6e0236349bbb86eb01ab
E: ID_SERIAL_SHORT=600508b1001c6e0236349bbb86eb01ab
您在 /var/spool/mail/root 中有新邮件
[root@zwrac2 ~]# udevadm info --name=/dev/sdb | grep ID_SERIAL
E: ID_SERIAL=36a416e710017d1f28bbec79900000000
E: ID_SERIAL_SHORT=6a416e710017d1f28bbec79900000000
[root@zwrac2 ~]# udevadm info --name=/dev/sdc | grep ID_SERIAL
E: ID_SERIAL=36a416e710017d1f28bbec7b000000001
E: ID_SERIAL_SHORT=6a416e710017d1f28bbec7b000000001
注意:
如果多个磁盘都分配了数据目录,需要多次执行以上命令,记录所有磁盘各自的唯一标识。

4. 执行以下命令查看 cpufreq 模块选用的节能策略。
cpupower frequency-info --policy

analyzing CPU 0:
current policy: frequency should be within 1.20 GHz and 3.10 GHz.
The governor "powersave" may decide which speed to use within this range.

[root@zwrac2 ~]# cpupower frequency-info --policy
analyzing CPU 0:
current policy: frequency should be within 1000 MHz and 2.30 GHz.
The governor "conservative" may decide which speed to use
within this range.

注意:
The governor "powersave"表示cpufreq的节能策略使用powersave,需要调整为performance,如下:
cat >> /etc/systemd/system/cpupower.service << EOF
[Unit]
Description=CPU performance
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set --governor performance
[Install]
WantedBy=multi-user.target
EOF
策略。如果是虚拟机或者云主机,则不需要调整,命令输出通常为 Unable to determinecurrent policy。

5. 配置系统优化参数

方法一:使用 tuned(推荐)
1. 执行 tuned-adm list 命令查看当前操作系统的 tuned 策略。
tuned-adm list

[root@zwcyserver ~]# tuned-adm list
Available profiles:
- balanced - General non-specialized tuned profile
- desktop - Optimize for the desktop use-case
- latency-performance - Optimize for deterministic performance at the cost of increased power consumption
- network-latency - Optimize for deterministic performance at the cost of increased power consumption, focused on low latency network performance
- network-throughput - Optimize for streaming network throughput, generally only necessary on older CPUs or 40G+ networks
- powersave - Optimize for low power consumption
- throughput-performance - Broadly applicable tuning that provides excellent performance across a variety of common server workloads
- virtual-guest - Optimize for running inside a virtual guest
- virtual-host - Optimize for running KVM guests
Current active profile: balanced ### 表示当前操作系统的 tuned 策略使用 balanced,建议在当前策略的基础上添加操作系统优化配置。

2. 创建新的 tuned 策略。
mkdir /etc/tuned/balanced-tidb-optimal/

vi /etc/tuned/balanced-tidb-optimal/tuned.conf

[main]
include=balanced
[cpu]
governor=performance
[vm]
transparent_hugepages=never
[disk]
devices_udev_regex=(ID_SERIAL=36d0946606d79f90025f3e09a0c1fc035)|(ID_SERIAL=36d0946606d79f90025f3e09a0c1f9e81)
elevator=noop
include=balanced 表示在现有的 balanced ###策略基础上添加操作系统优化配置。

3. 应用新的 tuned 策略。
tuned-adm profile balanced-tidb-optimal

方法二:使用脚本方式。如果已经使用 tuned 方法,请跳过本方法。
1. 执行 grubby 命令查看默认内核版本。
注意:
需安装 grubby 软件包。
grubby --default-kernel
/boot/vmlinuz-3.10.0-957.el7.x86_64

2. 执行 grubby --update-kernel 命令修改内核配置。
grubby --args="transparent_hugepage=never" --update-kernel /boot/vmlinuz-3.10.0-957.el7.x86_64
注意:--update-kernel 后需要使用实际的默认内核版本。

3. 执行 grubby --info 命令查看修改后的默认内核配置。
grubby --info /boot/vmlinuz-3.10.0-957.el7.x86_64

注意:
--info 后需要使用实际的默认内核版本。
94
index=0
kernel=/boot/vmlinuz-3.10.0-957.el7.x86_64
args="ro crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet LANG=en_US.UTF-8 transparent_hugepage=never"
root=/dev/mapper/centos-root
initrd=/boot/initramfs-3.10.0-957.el7.x86_64.img
title=CentOS Linux (3.10.0-957.el7.x86_64) 7 (Core)

4. 修改当前的内核配置立即关闭透明大页。
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag

5. 配置 udev 脚本应用 IO 调度器策略。
vi /etc/udev/rules.d/60-tidb-schedulers.rules

ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_SERIAL}=="36d0946606d79f90025f3e09a0c1fc035", ATTR{queue/scheduler}="noop"
ACTION=="add|change", SUBSYSTEM=="block", ENV{ID_SERIAL}=="36d0946606d79f90025f3e09a0c1f9e81", ATTR{queue/scheduler}="noop"

6. 应用 udev 脚本。
udevadm control --reload-rules
udevadm trigger --type=devices --action=change

7. 创建 CPU 节能策略配置服务。
cat >> /etc/systemd/system/cpupower.service << EOF
[Unit]
Description=CPU performance
[Service]
Type=oneshot
ExecStart=/usr/bin/cpupower frequency-set --governor performance
[Install]
WantedBy=multi-user.target
EOF

8. 应用 CPU 节能策略配置服务。
systemctl daemon-reload
systemctl enable cpupower.service
systemctl start cpupower.service

6. 执行以下命令验证透明大页的状态。
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]

7. 执行以下命令验证数据目录所在磁盘的 I/O 调度器。
cat /sys/block/sd[bc]/queue/scheduler
[noop] deadline cfq
[noop] deadline cfq

8. 执行以下命令查看 cpufreq 模块选用的节能策略。
cpupower frequency-info --policy

analyzing CPU 0:
current policy: frequency should be within 1.20 GHz and 3.10 GHz.
The governor "performance" may decide which speed to use within this range.

9. 执行以下命令修改 sysctl 参数。
echo "fs.file-max = 1000000">> /etc/sysctl.conf
echo "net.core.somaxconn = 32768">> /etc/sysctl.conf
echo "net.ipv4.tcp_tw_recycle = 0">> /etc/sysctl.conf
echo "net.ipv4.tcp_syncookies = 0">> /etc/sysctl.conf
echo "vm.overcommit_memory = 1">> /etc/sysctl.conf
sysctl -p

10. 执行以下命令配置用户的 limits.conf 文件。
cat << EOF >>/etc/security/limits.conf
tidb soft nofile 1000000
tidb hard nofile 1000000
tidb soft stack 32768
tidb hard stack 32768
EOF

3.2.6 手动配置 SSH 互信及 sudo 免密码
对于有需求,通过手动配置中控机至目标节点互信的场景,可参考本段。通常推荐使用 TiUP 部署工具会自动
配置 SSH 互信及免密登录,可忽略本段内容。
1. 以 root 用户依次登录到部署目标机器创建 tidb 用户并设置登录密码。
useradd tidb && \
passwd tidb

2. 执行以下命令,将 tidb ALL=(ALL)NOPASSWD: ALL 添加到文件末尾,即配置好 sudo 免密码。
visudo
tidb ALL=(ALL) NOPASSWD: ALL
3. 以 tidb 用户登录到中控机,执行以下命令。将 10.0.1.1 替换成你的部署目标机器 IP,按提示输入部署
目标机器 tidb 用户密码,执行成功后即创建好 SSH 互信,其他机器同理。新建的 tidb 用户下没有 .ssh
目录,需要执行生成 rsa 密钥的命令来生成 .ssh 目录。如果要在中控机上部署 TiDB 组件,需要为中控
机和中控机自身配置互信。
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub 10.0.1.1
4. 以 tidb 用户登录中控机,通过 ssh 的方式登录目标机器 IP。如果不需要输入密码并登录成功,即表示
SSH 互信配置成功。
ssh 10.0.1.1
[tidb@10.0.1.1 ~]$
5. 以 tidb 用户登录到部署目标机器后,执行以下命令,不需要输入密码并切换到 root 用户,表示 tidb
用户 sudo 免密码配置成功。
sudo -su root
[root@10.0.1.1 tidb]#
3.2.7 安装 numactl 工具
本段主要介绍如果安装 NUMA 工具。在生产环境中,因为硬件机器配置往往高于需求,为了更合理规划资源,
会考虑单机多实例部署 TiDB 或者 TiKV。NUMA 绑核工具的使用,主要为了防止 CPU 资源的争抢,引发性能衰退。
注意:
NUMA 绑核是用来隔离 CPU 资源的一种方法,适合高配置物理机环境部署多实例使用。
通过 tiup cluster deploy 完成部署操作,就可以通过 exec 命令来进行集群级别管理工
作。
1. 登录到目标节点进行安装(以 CentOS Linux release 7.7.1908 (Core) 为例)
sudo yum -y install numactl
2. 通过 TiUP 的 cluster 执行完 exec 命令来完成批量安装
tiup cluster exec --help
Run shell command on host in the tidb cluster
Usage:
cluster exec <cluster-name> [flags]
Flags:
--command string the command run on cluster host (default "ls")
-h, --help help for exec
--sudo use root permissions (default false)
将 tidb-test 集群所有目标主机通过 sudo 权限执行安装命令
tiup cluster exec tidb-test --sudo --command "yum -y install numactl"

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论