TiDB测试环境的搭建

地址规划:

---pd
32.114.67.177  pd1
32.114.76.201  pd2
32.114.76.205  pd3

---tikv
32.114.76.49  tikv1
32.114.67.178  tikv2
32.114.67.179  tikv3
32.114.76.204  tikv4

---tidb
32.114.76.201  tidb1
32.114.76.202  tidb2
32.114.76.203  tidb3

即共有3个pd-server,4个tikv-server,3个tidb-server,其中pd2和tidb1在 同一台服务器上

1、将最新的TiDB安装包上传到各个服务器上

检查文件完整性
tidb@oemcs2:~> sha256sum -c tidb-latest-linux-amd64.sha256 
tidb-latest-linux-amd64.tar.gz: OK
# 解开压缩包
tar -xzf tidb-latest-linux-amd64.tar.gz
cd tidb-latest-linux-amd64

2、启动服务。TiDB服务的启动顺序是PD->TIKV->TIDB

分别在PD服务器上启动pd:

./bin/pd-server --name=pd1 \
--data-dir=pd1 \
--client-urls="http://32.114.67.177:2379" \
--peer-urls="http://32.114.67.177:2380" \
--initial-cluster="pd1=http://32.114.67.177:2380,pd2=http://32.114.76.201:2380,pd3=http://32.114.76.205:2380"

./bin/pd-server --name=pd2 \
--data-dir=pd2 \
--client-urls="http://32.114.76.201:2379" \
--peer-urls="http://32.114.76.201:2380" \
--initial-cluster="pd1=http://32.114.67.177:2380,pd2=http://32.114.76.201:2380,pd3=http://32.114.76.205:2380"

./bin/pd-server --name=pd3 \
--data-dir=pd2 \
--client-urls="http://32.114.76.205:2379" \
--peer-urls="http://32.114.76.205:2380" \
--initial-cluster="pd1=http://32.114.67.177:2380,pd2=http://32.114.76.201:2380,pd3=http://32.114.76.205:2380"

分别在Tikv服务器上启动tikv:

./bin/tikv-server --pd="32.114.67.177:2379,32.114.76.201:2379,32.114.76.205:2379" \
--addr="32.114.76.49:20160" \
--store=tikv1

./bin/tikv-server --pd="32.114.67.177:2379,32.114.76.201:2379,32.114.76.205:2379" \
--addr="32.114.67.178:20160" \
--store=tikv2

./bin/tikv-server --pd="32.114.67.177:2379,32.114.76.201:2379,32.114.76.205:2379" \
--addr="32.114.67.179:20160" \
--store=tikv3

./bin/tikv-server --pd="32.114.67.177:2379,32.114.76.201:2379,32.114.76.205:2379" \
--addr="32.114.76.204:20160" \
--store=tikv4

分别在TiDB服务器上启动tidb:

./bin/tidb-server --store=tikv \
--path="32.114.67.177:2379,32.114.76.201:2379,32.114.67.205:2379"

3、如上步骤执行完后,TIDB分布式数据库环境便搭建完成了,可以通过mysql客户端直接登录,端口是4000

mysql -h 32.114.76.199 -P 4000 -u root -D test

登录进去后,使用起来极其像mysql。

像我搭建的这套环境,写了个java程序,简单做了个压测,开1000并发,每个并发insert 1000条记录,大概可以压出11000 TPS,效率还是相当可观的。

---------------------------------------------------------------------------------------------------------------------------------

个人感觉TiDB还是挺牛的,只是相关资料太少了,而且案例也少,鼓弄了几天,便有点无从下手的感觉,想从测试环境拉到生产环境,路漫漫其修远兮!

### 性能测试环境的基本配置要求 #### 硬件配置 性能测试环境的硬件配置通常需要满足一定的标准,以确保能够模拟实际生产环境的压力和负载情况。根据常见的实践经验和具体案例[^2],以下是性能测试环境中主要组件的推荐硬件配置: - **TiDB** - CPU:8 核及以上。 - 内存:16 GB 或更高。 - 存储:无特殊要求(适用于开发及测试场景),但在高性能需求下建议使用 SSD。 - 网络:千兆网卡。 - **PD (Placement Driver)** - CPU:4 核及以上。 - 内存:8 GB 或更高。 - 存储:SAS 类型硬盘,容量至少 200 GB。 - 网络:千兆网卡。 - **TiKV** - CPU:8 核及以上。 - 内存:32 GB 或更高。 - 存储:SSD 类型硬盘,容量至少 200 GB。 - 网络:千兆网卡。 - 实例数量:最低需部署 3 个实例以保障分布式一致性。 - **TiFlash** - CPU:32 核及以上。 - 内存:64 GB 或更高。 - 存储:SSD 类型硬盘,容量至少 200 GB。 - 网络:千兆网卡。 - **TiCDC** - CPU:8 核及以上。 - 内存:16 GB 或更高。 - 存储:SAS 类型硬盘,容量至少 200 GB。 - 网络:千兆网卡。 以上配置主要用于 TiDB 数据库系统的性能测试环境搭建,其他类型的系统可以根据其特定需求调整资源分配。 --- #### 软件需求 除了硬件配置外,性能测试环境还需要考虑以下几个方面的软件需求[^1][^3]: 1. **操作系统** 需要选择适合目标应用程序的操作系统版本,并确保该版本支持所需的硬件架构(如 x86-64 或 ARM)。常用的 Linux 发行版包括 CentOS、Ubuntu 和 Red Hat Enterprise Linux (RHEL),这些发行版因其稳定性和广泛的社区支持而被广泛采用。 2. **中间件和服务依赖** 如果待测系统涉及 Web 应用,则可能需要用到 Apache Tomcat、Nginx 或 Jetty 等应用服务器;如果涉及到消息队列服务,则 Kafka、RabbitMQ 或 ActiveMQ 是常见选项。此外,还需安装并配置数据库管理系统(如 MySQL、PostgreSQL)、缓存技术(Redis、Memcached)以及其他必要的后台服务。 3. **网络设置** 正确配置防火墙规则、DNS 解析以及端口映射等网络参数至关重要。这一步骤旨在减少因外部因素引起的延迟或连接失败问题,从而获得更精确的性能指标数据。 4. **监控工具** 使用专业的 APM(Application Performance Management) 工具来跟踪整个生命周期内的各项 KPI(Key Performance Indicators),比如 JMeter、Gatling 或 LoadRunner 进行压力加载的同时配合 Grafana + Prometheus 对资源消耗情况进行可视化展示。 5. **脚本编写与执行框架** 自动化程度较高的企业可能会利用 Python/Java 编写定制化的测试脚本来覆盖复杂的业务逻辑路径,通过 Jenkins/Pipeline 将多个阶段串联起来形成完整的 CI/CD 流程链路。 综上所述,构建一个完善的性能测试环境不仅限于简单的软硬件组合,还应该综合考虑到各种潜在影响因子的作用效果评估机制建立等方面的内容[^4]。 ```bash # 示例命令用于验证 Linux 下的基础环境是否正常工作 uname -a && cat /etc/os-release && free -h && df -hT && ip addr show ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值