数据库工具sysbench安装教程和性能测试例子

作者:junjie 时间:2024-01-28 06:00:42 

sysbench是一个模块化的、跨平台、多线程基准测试工具,主要用于评估测试各种不同系统参数下的数据库负载情况。关于这个项目的详细介绍请看:http://sysbench.sourceforge.net。

它主要包括以下几种方式的测试:
1、cpu性能
2、磁盘io性能
3、调度程序性能
4、内存分配及传输速度
5、POSIX线程性能
6、数据库性能(OLTP基准测试)
目前sysbench主要支持 MySQL,pgsql,oracle 这3种数据库。

一、安装

首先,在 http://sourceforge.net/projects/sysbench 下载源码包。
接下来,按照以下步骤安装:


tar zxf sysbench-0.4.8.tar.gz
cd sysbench-0.4.8
./configure && make && make install
strip /usr/local/bin/sysbench

以上方法适用于 MySQL 安装在标准默认目录下的情况,如果 MySQL 并不是安装在标准目录下的话,那么就需要自己指定 MySQL 的路径了。比如我的 MySQL 喜欢自己安装在 /usr/local/mysql 下,则按照以下方法编译:


/configure --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib && make && make install

当然了,用上面的参数编译的话,就要确保你的 MySQL lib目录下有对应的 so 文件,如果没有,可以自己下载 devel 或者 share 包来安装。

另外,如果想要让 sysbench 支持 pgsql/oracle 的话,就需要在编译的时候加上参数
--with-pgsql
或者
--with-oracle
这2个参数默认是关闭的,只有 MySQL 是默认支持的。

二、开始测试

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

1、cpu性能测试

sysbench --test=cpu --cpu-max-prime=20000 run


cpu测试主要是进行素数的加法运算,在上面的例子中,指定了最大的素数为 20000,自己可以根据机器cpu的性能来适当调整数值。

2、线程测试


sysbench --test=threads --num-threads=64 --thread-yields=100 --thread-locks=2 run


3、磁盘IO性能测试


sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw prepare
sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw run
sysbench --test=fileio --num-threads=16 --file-total-size=3G --file-test-mode=rndrw cleanup

上述参数指定了最大创建16个线程,创建的文件总大小为3G,文件读写模式为随机读。

4、内存测试

sysbench --test=memory --memory-block-size=8k --memory-total-size=4G run


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

5、OLTP测试


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 支持的表存储引擎类型。

好了,主要的就是这些了,想要了解更多信息就访问 sysbench 项目的主页吧。

标签:sysbench,数据库
0
投稿

猜你喜欢

  • 详解使用Selenium爬取豆瓣电影前100的爱情片相关信息

    2021-12-04 10:52:23
  • mysql如何统计同一字段不同值的个数

    2024-01-26 17:46:33
  • ASP.NET(AJAX+JSON)实现对象调用

    2023-07-19 12:29:33
  • PHP lcfirst()函数定义与用法

    2023-06-05 01:25:20
  • Golang与python线程详解及简单实例

    2023-03-13 18:55:25
  • python创建属于自己的单词词库 便于背单词

    2022-05-01 10:17:00
  • Python开源自动化工具Playwright安装及介绍使用

    2023-08-20 13:17:43
  • python通过http上传文件思路详解

    2022-02-08 12:48:30
  • php判断用户是否关注微信公众号

    2024-04-28 09:45:25
  • 十个惊艳的Pythonic单行代码

    2022-07-29 06:34:20
  • 详解Python单元测试的两种写法

    2023-02-13 06:04:20
  • Python的Django框架中的Context使用

    2023-09-19 15:29:24
  • Python arrow 更好的日期时间模块

    2022-02-08 14:06:15
  • 跨浏览器让javascript文件携带图片数据

    2011-03-31 17:12:00
  • 详解Oracle修改字段类型方法总结

    2024-01-20 22:40:26
  • 常用的数据库备份类型有哪些?

    2009-11-01 13:02:00
  • Python必备技巧之函数的使用详解

    2021-03-02 11:19:59
  • django搭建项目配置环境和创建表过程详解

    2022-10-26 19:03:25
  • python使用原始套接字发送二层包(链路层帧)的方法

    2022-06-30 04:14:48
  • 使用 JScript 创建 .exe 或 .dll 文件

    2011-06-04 15:37:00
  • asp之家 网络编程 m.aspxhome.com