用tpcc测试对比 innodb 和 tokudb

测试环境 1台IBM Intel(R) Xeon(R) CPU           E5606  @ 2.13GHz,内存12G

 

cd tpcc/tpcc-mysql/src

# make

cc load.o support.o `mysql_config --libs_r` -lrt -o ../tpcc_load

/usr/bin/ld: cannot find -lperconaserverclient

collect2: ld 返回 1

make: *** [../tpcc_load] 错误 1

 

# vi /etc/ld.so.conf.d/percona-x86_64.conf

/usr/local/percona/lib

 

# ldconfig -v  可看到

/usr/local/percona/lib:

        libHotBackup.so -> libHotBackup.so

        libperconaserverclient.so.18 -> libperconaserverclient_r.so.18.1.0

但 make 依然出错

# mysql_config --libs_r 输出

-L/usr/local/percona/lib/mysql -lperconaserverclient -lpthread -lm -lrt -lssl -lcrypto -ldl

/usr/local/percona/lib/mysql 下没有 libperconaserverclient.so 文件,但在 /usr/local/percona/lib 下有,做个链接

# cd /usr/local/percona/lib/mysql

# ln -s ../libperconaserverclient.so libperconaserverclient.so

编译通过了

 

要对脚本做适当修改,建表 create_table.sql

sed -i 's/Engine=InnoDB/Engine=tokudb/' create_table.sql

add_fkey_idx.sql 删除外建相关语句

 

 

load 100库

innodb 8.3G 1小时22分钟

tokudb 6.5G 1小时39分钟

看上去压缩效果并不明显,原因应该是tpcc的模拟数据随机性比较大,重复率低,我们日志库的压缩率就非常明显,是原来的1/8左右。

 

首次sql执行时间(秒)

select count(*) from customer;

innodb 1.06 tokudb 2.79

 

调整缓存 innodb 1G tokudb 8G 重启后测tokudb

停机时 InnoDB: Waiting for page_cleaner to finish flushing of buffer pool 花了2,3分钟

io wait 降到10%~20%+

第一次 7023.700 TpmC 第二次

tokudb_row_format = tokudb_uncompressed

第一次 6646.050 TpmC 第二次 7344.450 TpmC

结论:不压缩总体结果并无明显优势

 

200仓库继续测试,tokudb_row_format = tokudb_fast

tokudb 占用 12G

导入费时 2时46分  加索引费时 35分钟

32并发,预热2分钟,测试20分钟

第一次 4884.400 TpmC 第二次 4735.650 TpmC

64并发

第一次 5333.250 TpmC

 

 

总仓库数

压测仓库数

缓存

GB

禁用系统缓存

并发

连接数

TpmC

第1次

TpmC

第2次

tokudb

100

100

4

32

1719.300

 

Innodb

100

100

4

32

1531.000

 

 

 

 

 

 

 

+12.30%

 

tokudb

100

100

4

64

2182.650

 

Innodb

100

100

4

64

2322.500

 

 

 

 

 

 

 

-6.02%

 

tokudb

200

100

10

64

6481.750

 

Innodb

200

100

10

64

3199.000

 

 

 

 

 

 

 

+102.62%

 

tokudb

200

200

10

64

2683.150

 

Innodb

200

200

10

64

1206.750

 

 

 

 

 

 

 

+122.35%

 

tokudb

400

400

10

64

953.900

1047.800

Innodb

400

400

10

64

311.200

498.950

 

 

 

 

 

 

+207%

+110%

tokudb

400

200

10

64

2981.900

2745.450

Innodb

400

200

10

64

851.300

1992.200

 

 

 

 

 

 

+250%

+38%

tokudb

400

200

8

64

1889.500

 

tokudb

400

200

4

64

1452.100

 

tokudb

400

200

1

64

551.700

 

注:预热时间2分钟,压测时间20分钟,压测结果均符合要求;

 

总体结论:tokudb推荐用压缩数据,性能比innodb好,在数据量大的情况下表现更明显。

 

linux禁用文件缓存:# echo 1 > /proc/sys/vm/drop_caches

 

你可能感兴趣的:(用tpcc测试对比 innodb 和 tokudb)