Archive

Posts Tagged ‘sysbench’

sysbench oltp测试MySQL问题

July 1st, 2011 3 comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: sysbench oltp测试MySQL问题

昨天有同学在使用sysbench时候遇到了点小麻烦:

$ sysbench --test=oltp --oltp-table-size=100000000 --oltp-read-only=off --init-rng=on --num-threads=16 --max-requests=0 --oltp-dist-type=uniform --max-time=1800 --mysql-user=root   --db-driver=mysql --mysql-table-engine=innodb --oltp-test-mode=simple prepare
sysbench 0.4.12:  multi-threaded system evaluation benchmark

FATAL: unable to connect to MySQL server, aborting...
FATAL: error 1049: Unknown database 'sbtest'
FATAL: failed to connect to database server!
...

错误提示说:mysql连接不上, sbtest库没找到。

首先确认mysql是正常的…

$ mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 91
Server version: 5.1.48-debug-log Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use sbtest;
ERROR 1049 (42000): Unknown database 'sbtest'

但是库 sbtest确实不存在。

通过查看sysbench-0.4.12/sysbench/drivers/mysql/drv_mysql.c:400行

  DEBUG("mysql_real_connect(%p, \"%s\", \"%s\", \"%s\", \"%s\", %u, \"%s\", %s)",
        con,
        host,
        args.user,
        args.password,
        args.db,
        args.port,
        args.socket,
        (MYSQL_VERSION_ID >= 50000) ? "CLIENT_MULTI_STATEMENTS" : "0"
        );
  if (!mysql_real_connect(con,
                         host,
                         args.user,
                         args.password,
                         args.db,
                         args.port,
                         args.socket,
#if MYSQL_VERSION_ID >= 50000
                          CLIENT_MULTI_STATEMENTS)
#else
                          0)
#endif

我们可以看到sysbench在连接的时候需要先连接到sbtest库,但是库不存在,所以出现问题。

解决问题的方法很简单:
在mysql的shell下运行:

create database sbtest;

搞定。

小结:开源软件总是有点小问题,自己动手丰衣足食!

玩得开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: 工具介绍, 杂七杂八 Tags: ,

sysbench(系统性能基准)介绍

July 27th, 2010 No comments

原创文章,转载请注明: 转载自系统技术非业余研究

本文链接地址: sysbench(系统性能基准)介绍

SysBench is a modular, cross-platform and multi-threaded benchmark tool for evaluating OS parameters that are important for a system running a database under intensive load.
Current features allow to test the following system parameters:
* cpu性能
* file I/O performance
* scheduler performance
* mutex的性能
* memory allocation and transfer speed, 支持hugepage
* POSIX threads implementation performance
* database server performance (OLTP benchmark) 支持mysql,pgsql, oracle

项目地址是:http://sysbench.sourceforge.net/

从源码来看这个项目做的非常的模块化。 sysbench提供了诸如读取配置, 创建线程, 日志, 计时和模块化框架,支持的测试模式都是通过插件方式加入到框架去的。

用户很容易扩展相应的模块, 通常模块只需要关注自己要实现的测试功能,其他的事情由框架来做,很大的方便用户自己编写特定的测试模块。其他的如多线程什么的都无需自己去考虑。

在数据库的驱动方面,目前提供了mysql,pgsql, oracle的驱动。在数据库抽象方面也是模块的,用户自己也能容易加入自己的数据库支持。

作为一个轻量级别的bench工具,在系统的系统测量方面,可以了解到对系统运行产生很大影响的性能,如内存,cpu,磁盘,锁,线程调度,数据库等方面的信息,是一个得心应手的工具。

在ubuntu下可以用apt-get install sysbench来安装,具体的使用参看 man sysbench。

玩的开心!

Post Footer automatically generated by wp-posturl plugin for wordpress.

Categories: 工具介绍 Tags: , , , ,