十二、云服务器压测:
服务器压测可以选择工具sysbench,它可以模拟几千个线程并发的访问实例。作为一款广泛使用的开源模块化的、跨平台、多线程基准测试工具,sysbench主要用于评估服务器系统在不同负载条件下的性能表现。
sysbench具有简单易用性、高度灵活性、强大功能等特点,由主要我们来快速评估系统的性能,并发现潜在的瓶颈和优化计划,不管是CPU、磁盘IO,甚至是访问数据库压测,可以模拟使用各种各样的SQL语句,模拟出来各种事务提交,模拟出几十万的TPS去压测数据库。
1. sysbench是什么?
sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况,主要包括以下几种方式的基准测试:
2. 安装sysbench:
# 安装sysbench
sudo apt-get install sysbench -y
# 查看sysbench版本
sysbench --version
3. 测试比对机器:
以下为国内某云同样的2核2G的云服务器配置,下面进行的测试就是将华为云耀云服务器L实例的相同的配置,进行一下CPU、磁盘IO、内存等的指标进行对比测试一下。
华为云耀云服务器L实例服务器配置信息:
4. CPU的基准测试:
4.1 测试说明:
- 对CPU的性能测试通常有2种,分别为算质数、算圆周率等。
- sysbench是使用质数相加的测试,对CPU测试直接运行run即可。
4.2 测试命令:
sysbench --num-threads=12 --max-requests=10000 --debug=on --test=cpu --cpu-max-prime=20000 run
4.3 测试结果比较:
5. thread的基准测试:
5.1 测试说明:
测试线程调度的性能,用于高负载下的线程性能测试。
5.2 测试命令:
sysbench --num-threads=12 --max-requests=10000 --test=threads --thread-yields=100 --thread-locks=2 run
5.3 测试结果比较:
6. memory的基准测试:
6.1 测试说明:
- 内存分配测试,主要针对不同的块大小进行内存的连续读写或者随机读写测试。
- 可以分别测试8K和16K的顺序和随机分配。
- 以8K顺序分配为例。
6.2 测试命令:
sysbench --num-threads=12 --max-requests=10000 --test=memory --memory-block-size=8K --memory-total-size=100G --memory-access-mode=seq run
6.3 测试结果比较:
7. IO的基准测试:
7.1 测试说明:
- 文件IO的测试,用于测试IO负载性能。
- 需要测试6种模式下的IO负载性能,以随机读写模式为例。
7.2 测试命令:
# 生成测试数据
sysbench --num-threads=12 --max-requests=10000 --test=fileio --file-total-size=3G --file-test-mode=rndrw prepare
# 进行测试
sysbench --num-threads=12 --max-requests=10000 --test=fileio --file-total-size=3G --file-test-mode=rndrw run
# 销毁生成的测试数据
sysbench --num-threads=12 --max-requests=10000 --test=fileio --file-total-size=3G --file-test-mode=rndrw clean
参数解析
序号 |
参数 |
说明 |
1 |
num-thread |
创建测试线程的数目,默认为1 |
2 |
max-requests |
请求的最大数目,默认为10000,0代表不限制 |
3 |
debug |
是否显示更多的调试信息,默认为off |
4 |
test |
指定测试项目名称 |
5 |
file-total-size |
文件总大小 |
6 |
file-test-mode |
文件测试模式(seqrewr,顺序读写;seqrd,顺序读;seqwr,顺序写;rndrw,随机读写;rndrd,随机读;rndwr,随机写) |
7.3 测试结果比较:
8. 小结:
- 内存,随机分配比顺序分配速度快,块分配越大速度越快。
- 磁盘,顺序写比随机写快,顺序读比随机读慢,顺序读写比随机读写快,针对不同的服务器,可考虑用不同的读写模式已提升IO性能。
可以经过CPU、磁盘IO、内存等的指标进行对比测试一下,华为云耀云服务器L实例服务器确实要略胜一筹。