sysbench是一個模塊化的、跨平臺、多線程基準測試工具,主要用於評估測試各類不一樣系統參數下的數據庫負載狀況。mysql
它主要包括如下幾種方式的測試:sql
一、cpu性能數據庫
二、磁盤io性能express
三、調度程序性能多線程
四、內存分配及傳輸速度oracle
五、POSIX線程性能ide
六、數據庫性能(OLTP基準測試)模塊化
目前sysbench主要支持 MySQL,pgsql,oracle 這3種數據庫函數
1、軟件準備工具
下載sysbench
2、安裝
1.[root@cdhmysql opt]# tar -zxvf sysbench-0.5.tar.gz
2.[root@cdhmysql opt]# cd sysbench-0.5
3.[root@cdhmysql sysbench-0.5]# chmod +x autogen.sh
4.[root@cdhmysql sysbench-0.5]# ./configure --with-mysql --with-mysql-includes=/usr/include/mysql/ --with-mysql-libs=/usr/lib64
5[root@cdhmysql sysbench-0.5]# make
6.[root@cdhmysql sysbench-0.5]# make install
3、安裝常見錯誤
1.
drv_mysql.c:36:19: 錯誤:mysql.h:沒有那個文件或目錄 drv_mysql.c:37:26: 錯誤:mysqld_error.h:沒有那個文件或目錄 drv_mysql.c:43:5: 警告:「MYSQL_VERSION_ID」未定義 drv_mysql.c:48:5: 警告:「MYSQL_VERSION_ID」未定義 drv_mysql.c: 在函數‘mysql_drv_init’中: drv_mysql.c:240: 警告:隱式聲明函數‘mysql_library_init’ drv_mysql.c:240: 警告:對‘mysql_library_init’的嵌套的外部聲明 drv_mysql.c: 在函數‘mysql_drv_connect’中: drv_mysql.c:262: 錯誤:‘MYSQL’未聲明(在此函數內第一次使用) drv_mysql.c:262: 錯誤:(即便在一個函數內屢次出現,每一個未聲明的標識符在其 drv_mysql.c:262: 錯誤:所在的函數內也只報告一次。) drv_mysql.c:262: 錯誤:‘con’未聲明(在此函數內第一次使用) drv_mysql.c:268: 錯誤:expected expression before ‘)’ token drv_mysql.c:274: 警告:隱式聲明函數‘mysql_init’ drv_mysql.c:274: 警告:對‘mysql_init’的嵌套的外部聲明 drv_mysql.c:300: 警告:隱式聲明函數‘mysql_ssl_set’ drv_mysql.c:300: 警告:對‘mysql_ssl_set’的嵌套的外部聲明 drv_mysql.c:303: 錯誤:‘MYSQL_VERSION_ID’未聲明(在此函數內第一次使用) drv_mysql.c:313: 警告:隱式聲明函數‘mysql_real_connect’ drv_mysql.c:313: 警告:對‘mysql_real_connect’的嵌套的外部聲明 drv_mysql.c:320:5: 警告:「MYSQL_VERSION_ID」未定義 drv_mysql.c:328: 警告:隱式聲明函數‘mysql_errno’ drv_mysql.c:328: 警告:對‘mysql_errno’的嵌套的外部聲明 drv_mysql.c:329: 警告:隱式聲明函數‘mysql_error’ drv_mysql.c:329: 警告:對‘mysql_error’的嵌套的外部聲明 drv_mysql.c: 在函數‘mysql_drv_disconnect’中: drv_mysql.c:343: 錯誤:‘MYSQL’未聲明(在此函數內第一次使用) drv_mysql.c:343: 錯誤:‘con’未聲明(在此函數內第一次使用) drv_mysql.c:348: 警告:隱式聲明函數‘mysql_close’ drv_mysql.c:348: 警告:對‘mysql_close’的嵌套的外部聲明 drv_mysql.c: 在函數‘mysql_drv_bind_param’中: drv_mysql.c:423: 錯誤:‘MYSQL’未聲明(在此函數內第一次使用) drv_mysql.c:423: 錯誤:‘con’未聲明(在此函數內第一次使用) drv_mysql.c:423: 錯誤:expected expression before ‘)’ token drv_mysql.c: 在函數‘mysql_drv_query’中: drv_mysql.c:639: 錯誤:‘MYSQL’未聲明(在此函數內第一次使用) drv_mysql.c:639: 錯誤:‘con’未聲明(在此函數內第一次使用) drv_mysql.c:643: 警告:隱式聲明函數‘mysql_real_query’ drv_mysql.c:643: 警告:對‘mysql_real_query’的嵌套的外部聲明 drv_mysql.c:649: 錯誤:‘ER_LOCK_DEADLOCK’未聲明(在此函數內第一次使用) drv_mysql.c:649: 錯誤:‘ER_LOCK_WAIT_TIMEOUT’未聲明(在此函數內第一次使用) drv_mysql.c:650: 錯誤:‘ER_CHECKREAD’未聲明(在此函數內第一次使用) drv_mysql.c: 在函數‘mysql_drv_fetch_row’中: drv_mysql.c:678: 警告:隱式聲明函數‘mysql_fetch_row’ drv_mysql.c:678: 警告:對‘mysql_fetch_row’的嵌套的外部聲明 drv_mysql.c:678: 警告:賦值時將整數賦給指針,未做類型轉換 drv_mysql.c: 在函數‘mysql_drv_store_results’中: drv_mysql.c:705: 錯誤:‘MYSQL’未聲明(在此函數內第一次使用) drv_mysql.c:705: 錯誤:‘con’未聲明(在此函數內第一次使用) drv_mysql.c:706: 錯誤:‘MYSQL_RES’未聲明(在此函數內第一次使用) drv_mysql.c:706: 錯誤:‘res’未聲明(在此函數內第一次使用) drv_mysql.c:707: 錯誤:‘MYSQL_ROW’未聲明(在此函數內第一次使用) drv_mysql.c:707: 錯誤:expected ‘;’ before ‘row’ drv_mysql.c:751: 警告:隱式聲明函數‘mysql_store_result’ drv_mysql.c:751: 警告:對‘mysql_store_result’的嵌套的外部聲明 drv_mysql.c:757: 錯誤:‘ER_LOCK_DEADLOCK’未聲明(在此函數內第一次使用) drv_mysql.c:757: 錯誤:‘ER_LOCK_WAIT_TIMEOUT’未聲明(在此函數內第一次使用) drv_mysql.c:758: 錯誤:‘ER_CHECKREAD’未聲明(在此函數內第一次使用) drv_mysql.c:765: 警告:隱式聲明函數‘mysql_field_count’ drv_mysql.c:765: 警告:對‘mysql_field_count’的嵌套的外部聲明 drv_mysql.c:772: 警告:隱式聲明函數‘mysql_num_rows’ drv_mysql.c:772: 警告:對‘mysql_num_rows’的嵌套的外部聲明 drv_mysql.c:776: 錯誤:‘row’未聲明(在此函數內第一次使用) drv_mysql.c: 在函數‘mysql_drv_free_results’中: drv_mysql.c:799: 警告:隱式聲明函數‘mysql_free_result’ drv_mysql.c:799: 警告:對‘mysql_free_result’的嵌套的外部聲明 drv_mysql.c:799: 錯誤:‘MYSQL_RES’未聲明(在此函數內第一次使用) drv_mysql.c:799: 錯誤:expected expression before ‘)’ token drv_mysql.c: 在函數‘mysql_drv_done’中: drv_mysql.c:833: 警告:隱式聲明函數‘mysql_library_end’ drv_mysql.c:833: 警告:對‘mysql_library_end’的嵌套的外部聲明 make[3]: *** [libsbmysql_a-drv_mysql.o] 錯誤 1 make[3]: Leaving directory `/opt/sysbench-0.5/sysbench/drivers/mysql' make[2]: *** [all-recursive] 錯誤 1 make[2]: Leaving directory `/opt/sysbench-0.5/sysbench/drivers' make[1]: *** [all-recursive] 錯誤 1 make[1]: Leaving directory `/opt/sysbench-0.5/sysbench' make: *** [all-recursive] 錯誤 1 |
解決方法:安裝mysql-devel包 [root@cdhmysql mysql]# rpm -ivh MySQL-devel-5.6.35-1.el6.x86_64.rpm
2.
Fatal server error:
Server is already active for display 0
If this server is no longer running, remove /tmp/.X0-lock
and start again.
解決方法:只要先運行一次autogen.sh,而後再configure,make就能夠了
3.
/usr/bin/ld: cannot find -lmysqlclient_r collect2: ld returned 1 exit status make[2]: *** [sysbench] 錯誤 1 make[2]: Leaving directory `/opt/sysbench-0.5/sysbench' make[1]: *** [all-recursive] 錯誤 1 make[1]: Leaving directory `/opt/sysbench-0.5/sysbench' make: *** [all-recursive] 錯誤 1 |
解決:[root@cdhmysql mysql]# rpm -ivh MySQL-shared-5.6.35-1.el6.x86_64.rpm