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

介绍一款强大的压测工具,适用于操作系统和数据库的压力测试

热衷于分享各种干货知识,大家有想看或者想学的可以评论区留言,秉承着“开源知识来源于互联网,回归于互联网”的理念,分享一些日常工作中能用到或者比较重要的内容,希望大家能够喜欢,不足之处请大家多宝贵地意见,我们一起提升,守住自己的饭碗。

引言

Sysbench是一款开源免费的数据库性能压测工具,在对Oracle、MySQL和PostgreSQL等数据库的性能测试方面表现卓越。它功能强大且使用便捷,能够对数据库性能展开全面测试,从而为后续的数据库性能评估与优化工作提供有力支持。

Sysbench内置了大量实用的测试用例,同时还支持用户进行自定义扩展。无论是针对服务器环境,还是数据库的读、写、混合操作,它都可以实现完整的性能压测。值得一提的是,Sysbench的测试用例由Lua脚本提供,这种脚本易于编写和使用,极大地提高了测试效率,为用户带来了极大的便利。

默认支持MySQL,如果需要测试Oracle/PostgreSQL,则在configure时需要加上–with-oracle或者–with-pgsql参数

一、安装SysBench

下载地址:

https://github.com/akopytov/sysbench/

大家也可以从我的网盘进行下载

链接: https://pan.baidu.com/s/1-QyMdmojXb9xUZ8eGbSIZQ
提取码: 78kr

安装依赖

    [root@myoracle ~]# yum -y install make automake libtool pkgconfig libaio-devel openssl-devel mysql-devel

    解压

      [root@myoracle ~]# unzip sysbench-master.zip 
      [root@myoracle sysbench-master]# ./autogen.sh

      编译安装

        [root@myoracle sysbench-master]# ./configure

          [root@myoracle sysbench-master]# make -j

            [root@myoracle sysbench-master]# make install

            查看是否安装成功

              [root@myoracle sysbench-master]# sysbench --version

              安装完成后,压测脚本默认会安装在 usr/local/share/sysbench 目录下


              二、操作系统层面的压力测试:

              测试CPU写入速度

              测试内存写入速度

                [root@myoracle sysbench]# sysbench cpu --cpu-max-prime=10000 --threads=4 run

                测试内存写入速度

                  [root@myoracle ~]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=read run
                  在这里插入图片描述

                  测试内存写入速度

                    [root@myoracle ~]# sysbench memory --memory-block-size=8K --memory-total-size=10G --memory-oper=write --memory-access-mode=rnd run
                    在这里插入图片描述

                    测试内存多线程

                      [root@myoracle ~]# sysbench memory --memory-total-size=10G --memory-block-size=8k --threads=100 run
                      在这里插入图片描述

                      IO测试

                        [root@myoracle ~]# sysbench fileio --file-total-size=1G prepare

                          [root@myoracle ~]# sysbench --time=300 --threads=2 fileio --file-total-size=10G --file-num=2 --file-block-size=512 --file-test-mode=seqwr run

                          三、数据库层面测试:

                          准备测试数据

                            root@localhost:(none)>create database testdb;
                            [root@myoracle sysbench-master]# sysbench --db-driver=mysql --mysql-host=127.0.0.1 --mysql-port=3306 --mysql-user=root --mysql-password=123456 --mysql-db=testdb --table_size=1000000 --tables=20 --time=300 oltp_read_write prepare

                            执行测试用例

                              [root@myoracle sysbench-master]# sysbench oltp_read_write --mysql-socket=/tmp/mysql.sock  --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=123456  --mysql-db=testdb --threads=8 --time=60 run

                              清理测试数据

                                [root@myoracle sysbench-master]# sysbench oltp_read_write --mysql-socket=/tmp/mysql.sock  --mysql-host=localhost --mysql-port=3306 --mysql-user=root --mysql-password=123456  --mysql-db=testdb --tables=10 cleanup

                                四、重点指标介绍

                                1. QPS(每秒查询率)

                                • 定义:是对特定查询服务器在规定时间内处理流量多少的衡量标准,对应fetches/sec,即每秒的响应请求数,也代表着最大吞吐能力。例如在因特网上,常被用于衡量域名系统服务器的性能。
                                • 含义理解:可简单理解为每秒能处理的查询请求数量。

                                2. TPS(每秒事务数)

                                • 定义:是软件测试结果的测量单位,一个事务指一个客户机向服务器发送请求然后服务器做出反应的过程。客户机从发送请求开始计时,收到服务器响应后结束计时,依此来计算完成的事务个数。
                                • 含义理解:即每秒能够完成的完整事务数量,一个事务包含从客户机发起到服务器响应的整个过程。

                                3. 95% event的执行耗时

                                • 定义:表示95%的事件都能在这个时间内完成。
                                • 含义理解:该指标用于了解系统在高负载下的性能表现,能帮助识别潜在的性能瓶颈。

                                  总结
                                在某些简单的请求响应场景中,每个请求就是一个事务,此时QPS和TPS可以是等价的。但在复杂系统里,如电商网站,一个事务可能包含浏览商品、添加购物车、下单、支付等多个步骤,每个步骤又可能产生多个请求,所以通常TPS会小于QPS。在评估系统性能时,不能仅关注QPS和TPS,还需综合考虑其他因素,如响应时间、错误率、资源利用率等。这些因素共同影响着系统整体性能的评估。


                                文中的概念来源于互联网,如有侵权,请联系我删除。

                                欢迎关注公众号:小周的数据库进阶之路,一起交流数据库、中间件和云计算等技术。如果觉得读完本文有收获,可以转发给其他朋友,大家一起学习进步!感兴趣的朋友可以加我微信,拉您进群与业界的大佬们一起交流学习。



                                文章转载自小周的数据库进阶之路,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                                评论