一、下载
super-smack
下载地址:http://vegan.net/tony/supersmack/
源码:http://vegan.net/tony/supersmack/super-smack-1.3.tar.gz
二、编译及安装
配置编译选项:./configure --prefix=/usr/local/super-smack-1.3 --with-mysql --with-smacks-dir=/usr/local/super-smack-1.3
请根据测试的数据库来选择 --with-pgsql --with-oracle 或 --with-mysql
重点说明一下--with-mysql的编译配置:
编译的时候要把/usr/lib64目录下的libmysqlclient.so.16放到/usr/lib目录下,否则会出现下面的错误:
configure: error: Could not find libmysqlclient in ' /usr/lib /usr/lib/mysql /usr/local/lib /usr/local/lib/mysql /usr/local/mysql/lib
configure: error: Could not find mysql.h in ' /usr/include /usr/include/mysql /usr/local/include /usr/local/include/mysql /usr/local/mysql/include'
由于我的mysql是自行编译的,所以我这样操作
cd /usr/include; ln -s /usr/local/mysql/include/mysql
cd /usr/lib; ln -s /usr/local/mysql/lib/mysql
编译及安装:
make;make install
三、使用方法及常见问题
为方便使用
ln -s /usr/local/super-smack/bin/super-smack /usr/local/bin/
ln -s /usr/local/super-smack/bin/gen-data /usr/local/bin/
使用方法:
cd /usr/lib;ln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0 libmysqlclient.so.16
或者
cd /usr/lib;cp -a /usr/local/mysql/lib/mysql/libmysqlclient.so.16.0.0 libmysqlclient.so.16
否则会有如下问题:
# super-smack -d mysql /usr/local/super-smack/select-key.smack 10 1000
super-smack: error while loading shared libraries: libmysqlclient.so.16: cannot open shared object file: No such file or directory
注意可能要根据实际情况修改select-key.smack文件中数据库连接部分的配置。
注意还需要指定select-key.smack 文件的具体位置,否则会出现下面的错误提示。
# super-smack select-key.smack 10 1000
super-smack: Could not open input file select-key.smack errno = 2, error is No such file or directory
四、正常使用的范例
[root@MySQL lib]# super-smack -d mysql /usr/local/super-smack/select-key.smack 10 1000
Error running query select count(*) from http_auth:Table 'test.http_auth' doesn't exist
Creating table 'http_auth'
Populating data file '/var/smack-data/words.dat' with shell command 'gen-data -n 90000 -f %12-12s%n,%25-25s,%n,%d'
Loading data from file '/var/smack-data/words.dat' into table 'http_auth'
Table http_auth is now ready for the test
Query Barrel Report for client smacker1
connect: max=2809ms min=3ms avg= 586ms from 10 clients
Query_type num_queries max_time min_time q_per_s
select_index 20000 0 0 2243.93
注意,本文只是抛砖引玉,实际测试中,根据实际情况,需要认真构造测试脚本。