这里推荐一款,Linux性能测试工具有什么好用的工具

    作者:课课家教育更新于: 2019-07-23 09:23:38

    一般认为,一个数据结构是由数据元素依据某种逻辑联系组织起来的。对数据元素间逻辑关系的描述称为数据的逻辑结构;数据必须在计算机内存储,数据的存储结构是数据结构的实现形式,是其在计算机内的表示;此外讨论一个数据结构必须同时讨论在该类数据上执行的运算才有意义。一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率。

     1. 前言

    本文主要讲解如何使用sysbench这款软件对Linux服务器进行基准测试,它支持CPU、线程、内存、数据库压力测试,是程序开发专业人员经常使用的一款基准压力测试软件。

    数据库_数据分析_数据管理_课课家

    2. 基准测试与压力测试

    基准测试可以理解为针对系统的一种压力测试。但基准测试不关心业务逻辑,更加简单、直接、易于测试,数据可以由工具生成,不要求真实;而压力测试一般考虑业务逻辑(如购物车业务),要求真实的数据。

    3. 基准测试的作用

    对于多数Web应用,整个系统的瓶颈在于数据库;原因很简单:Web应用中的其他因素,例如网络带宽、负载均衡节点、应用服务器(包括CPU、内存、硬盘灯、连接数等)、缓存,都很容易通过水平的扩展(俗称加机器)来实现性能的提高。而对于MySQL,由于数据一致性的要求,无法通过增加机器来分散向数据库写数据带来的压力;虽然可以通过前置缓存(Redis等)、读写分离、分库分表来减轻压力,但是与系统其它组件的水平扩展相比,受到了太多的限制。

    而对数据库的基准测试的作用,就是分析在当前的配置下(包括硬件配置、OS、数据库设置等),数据库的性能表现,从而找出MySQL的性能阈值,并根据实际系统的要求调整配置。

    4. 基准测试的指标

    数据库指标

    • TPS/QPS:衡量吞吐量。
    • 响应时间:包括平均响应时间、最小响应时间、最大响应时间、时间百分比等,其中时间百分比参考意义较大,如前95%的请求的最大响应时间。。
    • 并发量:同时处理的查询请求的数量。

    5. 基准测试的分类

    对MySQL的基准测试,有如下两种思路:

    • 针对整个系统的基准测试:通过http请求进行测试,如通过浏览器、app或postman等测试工具。该方案的优点是能够更好的针对整个系统,测试结果更加准确;缺点是设计复杂实现困难。
    • 只针对MySQL的基准测试:优点和缺点与针对整个系统的测试恰好相反。

    在针对MySQL进行基准测试时,一般使用专门的工具进行,例如mysqlslap、sysbench等。其中,sysbench比mysqlslap更通用、更强大,且更适合Innodb(因为模拟了许多Innodb的IO特性),下面介绍使用sysbench进行基准测试的方法。

    6. 安装sysbench

    7. 使用sysbench测试系统性能

    软件安装完成后,就要开始测试各种性能了,测试的方法官网网站上也提到一些,但涉及到 OLTP 测试的部分却不够准确。在这里我大致提一下:

    7.1 cpu性能测试

    自己可以根据机器cpu的性能来适当调整数值。如下二图查看CPU配置!

    1. [root@zcwyou ~]# cat /proc/cpuinfo 

    sysbench01.png

    7.2 执行以下命令,进行CPU测试

    [root@zcwyou ~]# sysbench --test=cpu --cpu-max-prime=20000 run

    sysbench进行CPU测试

    cpu测试主要是进行素数的加法运算,在下图例子中,指定了最大的质数发生器数量为 20000,可以看出服务器此次测试 执行时间 大约为10.0005s秒7.3 线程测试

    1. [root@zcwyou ~]# sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run 

    如下图 (发送64次/个测试线程请求,每次/个线程请求产生/生成100个数量,每个线程的锁数量为2) ,下图的测试执行时间为10.0051s秒

    sysbench线程测试.png

    7.4 内存测试

    1. [root@zcwyou ~]# sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run  

    上述参数指定了本次测试整个过程是在内存中传输 4G 的数据量,每个 block 大小为 8K。测试结果如下图:

    执行时间为0.3844秒,每秒传输速度为10586.47Mb每秒

    sysbench内存测试

    7.5 OLTP测试

    1. [root@zcwyou ~]# sysbench --test=oltp --mysql-table-engine=myisam --oltp-table-size=1000000 --mysql-socket=/tmp/mysql.sock --mysql-user=test --mysql-host=localhost --mysql-password=test prepare 

    上述参数指定了本次测试的表存储引擎类型为 myisam,这里需要注意的是,官方网站上的参数有一处有误,即 --mysql-table-engine,官方网站上写的是 --mysql-table-type,这个应该是没有及时更新导致的。另外,指定了表最大记录数为 1000000,其他参数就很好理解了,主要是指定登录方式。测试 OLTP 时,可以自己先创建数据库 sbtest,或者自己用参数 --mysql-db 来指定其他数据库。--mysql-table-engine 还可以指定为 innodb 等 MySQL 支持的表存储引擎类型。

    8. 总结

    sysbench可以用于CPU、线程、内存、数据库压力测试,是一个综合性能的判断工具,也往往用于判断硬件和系统的稳定性,应该是一款不错的拷机软件。

     分析数据是将收集的数据通过加工、整理和分析、使其转化为信息,通常用方法有:
    老七种工具,即排列图、因果图、分层法、调查表、散步图、直方图、控制图;
    新七种工具,即关联图、系统图、矩阵图、KJ法、计划评审技术、PDPC法、矩阵数据图;

课课家教育

未登录