基準(zhǔn)測(cè)試不是壓力測(cè)試筷黔,是每帶有業(yè)務(wù)邏輯的測(cè)試。就是直擊通過(guò)各種語(yǔ)句,壓測(cè)服務(wù)器憎夷。
sysbench下載地址
https://dev.mysql.com/downloads/benchmarks.html
安裝步驟
cd sysbench-1.0/
./autogen.sh?
./configure --prefix=/usr/local/sysbench/ --with-mysql --with-mysql-includes=/usr/local/mysql/include --with-mysql-libs=/usr/local/mysql/lib?? #sysbench依賴(lài)mysql安裝目錄下的兩個(gè)文件夾下的文件
make
make install
安裝過(guò)程問(wèn)題
如果報(bào)錯(cuò)為
/usr/local/sysbench/bin/sysbench: error while loading shared libraries: libmysqlclient.so.20: cannot open shared object file: No such file or directory
那么就執(zhí)行
ln -s /usr/local/mysql/lib/libmysqlclient.so.20 /usr/lib64
OLTP測(cè)試
sysbench測(cè)試腳本目錄:
/usr/local/sysbench/share/sysbench/tests/include/oltp_legacy
下面只測(cè)試各種混合場(chǎng)景(生產(chǎn)用的)
真實(shí)測(cè)試場(chǎng)景中,數(shù)據(jù)表建議不低于10個(gè)昧旨,單表數(shù)據(jù)量不低于500萬(wàn)行拾给,當(dāng)然了,要視服務(wù)器硬件配置而定兔沃。如果是配備了SSD或者PCIE SSD這種高IOPS設(shè)備的話(huà)蒋得,則建議單表數(shù)據(jù)量最少不低于1億行。
生產(chǎn)表語(yǔ)句:
/usr/local/sysbench/bin/sysbench /usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=localhost --mysql-port=33061 --mysql-table-engine=innodb? --oltp_tables_count=8 --table-size=100000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=123456 --mysql-socket=/data/mysql/datanode1/node1.sock prepare
/usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua? 使用了這個(gè)腳本乒疏,可讀寫(xiě)混合的
--oltp_tables_count=8?? 在test數(shù)據(jù)庫(kù)额衙,創(chuàng)建8個(gè)表
--mysql-table-engine=innodb? 指定表的存儲(chǔ)引擎類(lèi)別
--table-size=100000?? 每張表數(shù)據(jù)量為10萬(wàn)
--mysql-db=test??? 在test這個(gè)數(shù)據(jù)庫(kù)進(jìn)行測(cè)試
--mysql-socket=/data/mysql/datanode1/node1.soc 指定socket
prepare 用于生產(chǎn)測(cè)試數(shù)據(jù)
混合場(chǎng)景壓測(cè):
/usr/local/sysbench/bin/sysbench /usr/local/sysbench/share/sysbench/tests/include/oltp_legacy/oltp.lua --mysql-host=localhost --mysql-port=33061 --mysql-table-engine=innodb --table-size=100000 --db-driver=mysql --mysql-db=test --mysql-user=root --mysql-password=123456 --oltp_tables_count=8 --max-requests=0 --threads=32 --oltp-read-olny=off --report-interval=10 --percentile=99 --max-time=360 --mysql-socket=/data/mysql/datanode1/node1.sock run
--max-requests=0?? 設(shè)置最大請(qǐng)求,0為不限制怕吴,想多少請(qǐng)求都可以窍侧,在限定的時(shí)間內(nèi)
--threads=32? 開(kāi)啟32個(gè)并發(fā)線(xiàn)程
--oltp-read-olny=off? 讀寫(xiě)混合
--report-interval=10 每10s打印一次報(bào)告輸出
--percentile=99?? 去簽名99%的數(shù)據(jù)進(jìn)行分析
--max-time=360 這個(gè)命令執(zhí)行360s
測(cè)試結(jié)果如下:
SQL statistics:
? ? queries performed:
? ? ? ? read:? ? ? ? ? ? ? ? ? ? ? ? ? ? 961506?? #360s內(nèi)一共的讀請(qǐng)求
? ? ? ? write:? ? ? ? ? ? ? ? ? ? ? ? ? 274713?? #360s內(nèi)一共的寫(xiě)請(qǐng)求
? ? ? ? other:? ? ? ? ? ? ? ? ? ? ? ? ? 137357?? #360s內(nèi)除了讀和寫(xiě)請(qǐng)求外其他的請(qǐng)求
? ? ? ? total:? ? ? ? ? ? ? ? ? ? ? ? ? 1373576??? #360s內(nèi)全部請(qǐng)求總和
? ? transactions:? ? ? ? ? ? ? ? ? ? ? ? 68678? (190.71 per sec.)?? # 68678是總共事務(wù)數(shù)??? 190.71是平均每秒執(zhí)行事務(wù)數(shù)
? ? queries:? ? ? ? ? ? ? ? ? ? ? ? ? ? 1373576 (3814.25 per sec.)?? #1373576 總共查詢(xún)數(shù)?? 3814.25 平均每秒查詢(xún)數(shù)
? ? ignored errors:? ? ? ? ? ? ? ? ? ? ? 1? ? ? (0.00 per sec.)
? ? reconnects:? ? ? ? ? ? ? ? ? ? ? ? ? 0? ? ? (0.00 per sec.)
General statistics:
? ? total time:? ? ? ? ? ? ? ? ? ? ? ? ? 360.1108s? #總時(shí)間
? ? total number of events:? ? ? ? ? ? ? 68678?? #總共事務(wù)數(shù)
Latency (ms):
? ? ? ? min:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 25.24? #最小的請(qǐng)求響應(yīng)時(shí)間,毫秒
? ? ? ? avg:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 167.75? #平均請(qǐng)求響應(yīng)時(shí)間转绷,毫秒
? ? ? ? max:? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 5602.91? #最大請(qǐng)求響應(yīng)時(shí)間伟件,毫秒
? ? ? ? 99th percentile:? ? ? ? ? ? ? ? ? ? ? 235.74?? #簽名99%的請(qǐng)求時(shí)間,最大為235.74毫秒
? ? ? ? sum:? ? ? ? ? ? ? ? ? ? ? ? ? ? 11520784.38?? #全部等待請(qǐng)求響應(yīng)的時(shí)間
Threads fairness:
? ? events (avg/stddev):? ? ? ? ? 2146.1875/35.04? #平均每秒執(zhí)行事件為2146.1875? 標(biāo)準(zhǔn)為每秒35.04
? ? execution time (avg/stddev):? 360.0245/0.02? #平均每個(gè)事件響應(yīng)時(shí)間為 360.0245毫秒议经,標(biāo)準(zhǔn)為每個(gè)事件響應(yīng)時(shí)間為0.02毫秒