測試環境 1臺IBM Intel(R) Xeon(R) CPU E5606 @ 2.13GHz,內存12Gmysql
cd tpcc/tpcc-mysql/srclinux
# makesql
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.confspa
/usr/local/percona/lib日誌
# ldconfig -v 可看到orm
/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