基准测试是 指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进行定量的和可对比的测试。例如,对计算机CPU进行浮点运算、数据访问的带宽和延迟等指标的基准测试,可以使用户清楚地了解每一款CPU的运算性能及作业吞吐能力是否满足应用程序的要求;
高性能MySQL -MySQL基准测试,(http_load , sysbench 使用介绍 )
答:基准测试是针对系统设计的一种压力测试。可以观察系统在不同的压力下的行为,评估系统的容量,掌握哪些是重要的变化,或者观察系统如何处理不同的数据。
⚠️ 不能根据测试结果做简单的推断。例如:假设想知道使用新数据库服务后,系统能支撑多大的业务增长,这时候不能简单地通过测试结果支持的TPS(每秒事务数)是原系统推断说新系统一定可以支持40倍的业务增长,因为在业务增长的同时,系统的流量、用户、数据以及不同数据之间的交互都在增长,它们不可能都有40倍的支撑能力,尤其是相互之间的关系。
如果能在真实的数据集上执行重复的查询,那么针对Mysql的基准测试也是游泳的,但是数据本身和数据集的大小是真实的,可以采用生成环境的数据快照。
常见错误❌: 1. 使用真实数据的子集而不是全集。例如应用需要几百GB的数据,测试只有1GB数据 2. 使用错误的数据分布。例如使用均匀分布的数据测试,而系统的真是数据与很多热点区域。 3. 使用不真实的分布参数,例如假定所有用户的个人信息会被平均地读取。 4. 在多用户场景中,只做单用户的测试 5. 在单服务区上测试分布式应用。 6. 与真实用户行为不匹配。例如Web页面中的“思考时间”。真实用户在请求到一个页面会阅读一段时间,而不是不停顿地一个接一个点击相关链接。 7. 反复执行同一个查询。 8. 没有检查错误。本应该慢的查询突然变快了,就应该检查是否有错误产生。 9. 忽略了系统预热的过程 10. 使用默认的服务器配置 11. 测试时间太短。
如同,利用BENCHMARK()函数可以测试 MD5()和SHA1()哪个执行更快,但是这个函数只是简单地返回服务器执行表达式的时间,而不会涉及分析和优化的开销,不适合用来做真正的基准测试,因为很难理解真正要测试什么。
根据以上的学习,我在网上找到工具结合高性能MySQL书籍开始试用。
老办法,官网wget,然后tar 解压
然后cd进入目录,之后make, make install 两个命令安装即可
⚠️1. make前要先有gcc编译器,但一般Linux都有集成
2. 可能会报一个错误:
无法创建普通文件”/usr/local/man/man1”: 没有那个文件或目录
解决方法:mkdir /usr/local/man
手动建立一个就可以
记得重新make install
-parallel 简写-p :含义是并发的用户进程数 -fetches 简写-f :含义是总计的访问次数 -rate 简写-r :含义是每秒的访问频率 -seconds 简写-s :含义是总计的访问时间 url 是你要访问的网址名,参数可以是单个的网址也可以使包含网址的文件
所以可以先创建一个urls.txt,然后每一行放一个url 然后命令行运行 http_load -paraller 1 -seconds 10 urls.txt 即一个并发进程,总计10秒访问时间
当我尝试用500个并发访问时,阿里云学生机已经吃不消了。http_load -parallel 500 -second 10 urls.txt
该工具可以在https://github.com/akopytov/sysbench github上面wget,然后解压,之后按照readme的步骤安装
⚠️./autogen.sh 可能报错
需要1. 安装yum install automake 2. 安装yum install libtool
2. 可能在./configure 之后会error,错误信息大概是没找到mysql库之类的,找了各种解决办法,都说配置一下目录,结果还是不对。后来我尝试 yum install mysql-devel
,之后再运行就可以了。
上图可以看到我的服务器的CPU情况
接下来运行测试 sysbench-master]# sysbench ==test=cpu --cpu-max-prime=2000 run
可以看到需要的total时间,这个基准测试可以用来判断两台服务器之间的CPU性能
文件I/O (fileio)基准测试可以测试系统在不同I/O负载下的性能 对于比较不同的硬盘驱动器,不同的RAID卡,不同的RAID模式,都会很有帮助。可以根据测试结果来调整I/O子系统。
1. 准备阶段
sysbench --test=fileio --file-num=16 --file-block-size=16384 --file-total-size=2G prepare
1. 测试运行阶段
sysbench –test=fileio –file-num=16 –file-block-size=16384 –file-total-size=2G –num-threads=4 –max-requests=100000000 –max-time=180 –file-test-mode=seqwr –file-extra-flags=direct run
结果:
–file-test-mode=seqwr(顺序写入) seqrewr 顺序重写 seqrd顺序读取 rndrd随机读取 rndwr随机写入 rndrw混合随机读/写
本文转载自:https://blog.csdn.net/return_true_hang/article/details/61199333