华为云云耀云服务器L实例评测|企业项目最佳实践之压测 (十一)

华为云云耀云服务器L实例评测|企业项目最佳实践系列:

华为云云耀云服务器L实例评测|企业项目最佳实践之云服务器介绍(一)
华为云云耀云服务器L实例评测|企业项目最佳实践之华为云介绍(二)
华为云云耀云服务器L实例评测|企业项目最佳实践之华为云耀云服务器L实例介绍(三)
华为云云耀云服务器L实例评测|企业项目最佳实践之云耀云服务器L实例购买 (四)
华为云云耀云服务器L实例评测|企业项目最佳实践之评测用例(五)
华为云云耀云服务器L实例评测|企业项目最佳实践之包管理工具安装软件(六)
华为云云耀云服务器L实例评测|企业项目最佳实践之docker部署及应用(七)
华为云云耀云服务器L实例评测|企业项目最佳实践之私有库搭建verdaccio(八)
华为云云耀云服务器L实例评测|企业项目最佳实践之启动宠物预约项目(九)
华为云云耀云服务器L实例评测|企业项目最佳实践之计划任务与Queue队列实践 (十)
华为云云耀云服务器L实例评测|企业项目最佳实践之压测 (十一)
华为云云耀云服务器L实例评测|企业项目最佳实践之建议与总结(十二)


十二、云服务器压测:

服务器压测可以选择工具sysbench,它可以模拟几千个线程并发的访问实例。作为一款广泛使用的开源模块化的、跨平台、多线程基准测试工具,sysbench主要用于评估服务器系统在不同负载条件下的性能表现。

sysbench具有简单易用性、高度灵活性、强大功能等特点,由主要我们来快速评估系统的性能,并发现潜在的瓶颈和优化计划,不管是CPU、磁盘IO,甚至是访问数据库压测,可以模拟使用各种各样的SQL语句,模拟出来各种事务提交,模拟出几十万的TPS去压测数据库。


1. sysbench是什么?

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况,主要包括以下几种方式的基准测试:

序号 指标 指标值
1 CPU性能 找范围内最大素数{时间越短越好}
2 磁盘IO性能 不同场景下IOPS{越大越好}
3 调度程序性能 不同场景下IOPS{越大越好}
4 内存分配及传输速度 以不同块大小传输一定数量的数据吞吐量大小{越大越好}
5 POSIX线程性能 线程并发执行,循环响应信号量花费的时间{越少越好}
6 数据库性能(OLTP基准测试) 并发线程同时申请互斥锁循环一定次数花费的时间{越少越好}

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

参数解析

序号 参数 说明
1 num-thread 创建测试线程的数目,默认为1
2 max-requests 请求的最大数目,默认为10000,0代表不限制
3 debug 是否显示更多的调试信息,默认为off
4 test 指定测试项目名称
5 cpu-max-prime 最大质数发生器数量,默认是10000

4.3 测试结果比较:

在这里插入图片描述

在这里插入图片描述


5. thread的基准测试:

5.1 测试说明:

测试线程调度的性能,用于高负载下的线程性能测试。

5.2 测试命令:

sysbench --num-threads=12 --max-requests=10000 --test=threads --thread-yields=100 --thread-locks=2 run

参数解析

序号 参数 说明
1 num-thread 创建测试线程的数目,默认为1
2 max-requests 请求的最大数目,默认为10000,0代表不限制
3 debug 是否显示更多的调试信息,默认为off
4 test 指定测试项目名称
5 thread-yields 每个请求产生多个线程,默认是1000
6 threads-locks 每个线程的锁的数量,默认是8

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

参数解析

序号 参数 说明
1 num-thread 创建测试线程的数目,默认为1
2 max-requests 请求的最大数目,默认为10000,0代表不限制
3 debug 是否显示更多的调试信息,默认为off
4 test 指定测试项目名称
5 memory-block-size 测试时,内存块大小
6 memory-total-size 传输数据的总大小
7 memory-access-mode 存储器存取方式(seq、rnd),默认是seq

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实例服务器确实要略胜一筹。

猜你喜欢

转载自blog.csdn.net/wanmeijuhao/article/details/133847613