ber-int-cols=N, -y N 自動生成的測試表中包含多少個數(shù)字類型的列,默認(rèn)1

創(chuàng)新互聯(lián)科技有限公司專業(yè)互聯(lián)網(wǎng)基礎(chǔ)服務(wù)商,為您提供電信機(jī)房托管,高防物理服務(wù)器租用,成都IDC機(jī)房托管,成都主機(jī)托管等互聯(lián)網(wǎng)服務(wù)。
--number-of-queries=N 總的測試查詢次數(shù)(并發(fā)客戶數(shù)×每客戶查詢次數(shù))
--query=name,-q 使用自定義腳本執(zhí)行測試,例如可以調(diào)用自定義的一個存儲過程或者sql語句來執(zhí)行測試。
--create-schema 代表自定義的測試庫名稱,測試的schema,MySQL中schema也就是database。
--commint=N 多少條DML后提交一次。
--compress, -C 如果服務(wù)器和客戶端支持都壓縮,則壓縮信息傳遞。
--concurrency=N, -c N 表示并發(fā)量,也就是模擬多少個客戶端同時執(zhí)行select。可指定多個值,以逗號或者--delimiter參數(shù)指定的值做為分隔符。例如:--concurrency=100,200,500。
兩種簡單的方法,一個是使用海量數(shù)據(jù)進(jìn)行測試性能。一個是使用測試工具,比如mysqlslap等等等等。
http函數(shù)下的loadrunner編程。
globals.h
#ifndef _GLOBALS_H
#define _GLOBALS_H
#include "lrun.h"
#include "web_api.h"
#include "lrw_custom_body.h"
#include "modal_dialog_callbacks.h"
#define random(x) (rand()%x)
#include
#include
#include
#include
#include
#include
#include
#endif // _GLOBALS_H
vuser_init.c
MYSQL *db;
MYSQL_ROW record;
vuser_init()
{
char sql[128];
MYSQL_RES *results1;
lr_load_dll("libmysql.dll");
db = mysql_init(NULL);
mysql_real_connect(db, "192.168.8.32", "root", "123456", "sunboyu_test", 3311, "/tmp/mysql3311.sock", 1);
sprintf(sql, "show tables");
mysql_query(db, sql);
results1 = mysql_store_result(db);
while((record = mysql_fetch_row(results1)))
{
lr_log_message("table = %s", record[0]);
}
mysql_free_result(results1);
return 0;
}
vuser_end.c
vuser_end()
{
mysql_close(db);
mysql_server_end();
return 0;
}
Action.c
Action()
{
int r1 = 0;
char sql[128];
r1 = random(11); //10種用戶,8種正常訪問,兩種在挖墳
lr_log_message(" %d", r1);
if(r1==11)
{
my_mysql_insert();
}
else
{
my_mysql_query( r1 );
}
return 0;
}
int my_mysql_query( int randid )
{
int r2 = 0;
int j = 0;
int count = 0;
int page = 0;
char sql[128];
MYSQL_RES *results2;
if(randid2) //老數(shù)據(jù),小部分 20%
{
r2 = random(700000);
sprintf(sql, "SELECT COUNT(*) AS count FROM posts_jx3 WHERE tid = %d;",r2);
lr_log_message("%s",sql);
mysql_query(db, sql);
results2 = mysql_store_result(db);
while((record = mysql_fetch_row(results2)))
{
lr_log_message("count = %d", record[0]);
}
mysql_free_result(results2);
page = count/10;
lr_log_message("page = %d", page);
for(j=0;j =page;j++)
{
sprintf(sql, "SELECT * FROM posts_jx3 WHERE tid = %d LIMIT %d,10;",r2,j);
mysql_query(db, sql);
lr_log_message("%s", sql);
if (j0) {
results2 = mysql_store_result(db);
while((record = mysql_fetch_row(results2)))
{
lr_log_message("pid = %d", record[0]);
}
mysql_free_result(results2);
}
}
}
else //新數(shù)據(jù),大部分 80%
{
r2 = random(273505);
r2 = r2+700000;
sprintf(sql, "SELECT COUNT(*) AS count FROM posts_jx3 WHERE tid = %d;",r2);
壓力測試工具mysqlslap 使用幫助--help介紹的很詳細(xì),下面是一些常用的選項(xiàng)。根據(jù)幫助文檔就可以自己敲命令進(jìn)行壓力測試了。
--concurrency代表并發(fā)數(shù)量,多個可以用逗號隔開,當(dāng)然你也可以用自己的分隔符隔開,這個時候要用到--delimiter開關(guān)。
--engines代表要測試的引擎,可以有多個,用分隔符隔開。
--iterations代表要運(yùn)行這些測試多少次。
--auto-generate-sql 代表用系統(tǒng)自己生成的SQL腳本來測試。
--auto-generate-sql-load-type 代表要測試的是讀還是寫還是兩者混合的(read,write,update,mixed)
--number-of-queries 代表總共要運(yùn)行多少次查詢。每個客戶運(yùn)行的查詢數(shù)量可以用查詢總數(shù)/并發(fā)數(shù)來計算。比如倒數(shù)第二個結(jié)果2=200/100。
--debug-info 代表要額外輸出CPU以及內(nèi)存的相關(guān)信息。
--number-int-cols 代表示例表中的INTEGER類型的屬性有幾個。
--number-char-cols 意思同上。
--create-schema 代表自己定義的模式(在MySQL中也就是庫)。
--query 代表自己的SQL腳本。
--only-print 如果只想打印看看SQL語句是什么,可以用這個選項(xiàng)。
mysqlslap對于模擬多個用戶同時對MySQL發(fā)起“進(jìn)攻”提供了方便。同時詳細(xì)的提供了“高負(fù)荷攻擊MySQL”的詳細(xì)數(shù)據(jù)報告。而且如果你想對于多個引擎的性能。這個工具再好不過了。
怎么使用tpcc做mysql的壓力測試
首先mysql/bin 目錄里應(yīng)該有mysqlslap.exe,我的版本是 5.5.11,里面是有這玩意的
在執(zhí)行之前需要在mysql里建一個mysqlslap的database
use mysqlslap
然后建表news,classify輸數(shù)據(jù)...
在命令行里輸入:
C:\Program Files\MySQL\MySQL Server 5.5\binmysqlslap -u root –no-defaults -p -c
reate-schema=example --query="SELECT n.* FROM news n,classify c WHERE n.type=c.id AND c.type='2'" --iterations=1000
其中-u為username,-p為使用密碼,query引號后的內(nèi)容為執(zhí)行的測試的sql,循環(huán)1000次
要求輸入密碼
Enter password: ****
結(jié)果:
Benchmark
Average number of seconds to run all queries: 0.007 seconds
Minimum number of seconds to run all queries: 0.000 seconds
Maximum number of seconds to run all queries: 1.016 seconds
Number of clients running queries: 1
Average number of queries per client: 1
新聞名稱:mysql怎么測壓力,mysql自帶的壓測工具
分享鏈接:http://chinadenli.net/article0/dsgshio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、域名注冊、面包屑導(dǎo)航、用戶體驗(yàn)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)