Linux 中有很多压测工具,不同的场景会各有优劣,例如磁盘压测工具 fio 。
Sysbench 算是一个比较通用的压测或者基准测试工具,这是一个开源、模块化、跨平台的多线程性能测试工具,可以用来进行 CPU、内存、IO、线程、数据库的性能测试,其中数据库支持 MySQL、Oracle 和 PostgreSQL 。
这里简单介绍其使用方法。
所谓的基准测试,主要是对测试对象,进行定量、可复现、可对比的测试,不关心业务逻辑,相比来说更加简单、直接、易于测试,数据可以由工具生成,不要求真实。
另外一种是压力测试,此时一般需要考虑具体的业务逻辑,需要确保压测模型尽量服务期望场景,所以一般是真实数据。
在 CentOS 中,对应的 RPM 包仓库在 EPEL 中,可以通过如下命令安装。
# yum --enablerepo=epel install sysbench
建议使用上述的二进制安装方式,源码安装要复杂一些。
基本的使用方式如下。
$ sysbench [options]... [testname] [command]
对于具体的参数可以通过 sysbench --help
查看,包括了常用的参数、内置的压测引擎等。
相关的子类压测,同样有帮助文档,例如 sysbench --test=cpu help
查看与 CPU 压测相关的一些帮助文档。
--num-threads=N 创建测试线程的数目,默认为 1;
--max-requests=N 总请求数,与--max-time选择一个设置即可,默认值为 10000;
--max-time=N 总执行时间,单位为秒,默认值为0,也就是不限制;
--forced-shutdown=STRING 当超过--max-time后强制中断,默认为off;
--thread-stack-size=SIZE 每个线程的stack大小,默认为64K;
$ sysbench --test=cpu --cpu-max-prime=2000 run
$ sysbench --num-threads=3 --test=cpu --cpu-max-prime=2000000 run
如果喜欢这里的文章,而且又不差钱的话,欢迎打赏个早餐 ^_^