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

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

 1. 前言

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

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

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

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

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秒

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

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每秒

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

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、线程、内存、数据库压力测试,是一个综合性能的判断工具,也往往用于判断硬件和系统的稳定性,应该是一款不错的拷机软件。

责任编辑:华轩 来源: linuxrumen
相关推荐

2011-05-10 09:55:14

2018-08-01 09:00:00

测试工具负载测试性能测试

2021-06-09 09:52:29

开源Pyroscope代码

2021-01-27 13:16:39

ScreenLinux命令

2021-02-16 10:58:50

ScreenLinux命令

2019-08-02 14:45:22

阿里Java命令

2014-04-02 14:03:04

网站速度性能测试

2017-11-08 08:20:45

2020-07-30 13:17:26

浏览器测试工具网站兼容性

2010-06-07 14:42:47

Linux性能测试工具

2010-06-04 16:07:09

Linux 性能测试工

2024-05-09 07:34:38

SQL Server数据库管理工具

2021-04-01 10:22:42

工具Linux文件

2022-11-28 11:31:37

2020-09-30 13:29:25

工具代码开发

2021-04-22 09:20:20

KubernetesKubectl FlaLinux

2011-10-09 11:00:17

2010-06-10 17:37:08

Linux 性能测试工

2024-03-06 18:09:06

Linux性能工具

2011-04-07 13:53:25

Web工具
点赞
收藏

51CTO技术栈公众号