mysql 5.5 壓力測試,mysql 壓力測試

mysql 壓力測試

sysbench支持的測試模式:

1、CPU運算性能

2、磁盤IO性能

3、調度程序性能

4、內存分配及傳輸速度

5、POSIX線程性能

6、數據庫性能(OLTP基準測試)

目前sysbench主要支持 mysql,drizzle,pgsql,oracle 等幾種數據庫。

二、編譯安裝sysbench

[root@test package]# tar ?zxvf sysbench-0.4.12-1.1.tgz

[root@test sysbench-0.4.12-1.1]# ./autogen.sh

[root@test sysbench-0.4.12-1.1]# ./configure

[root@test sysbench-0.4.12-1.1]# make

[root@test sysbench-0.4.12-1.1]# make install

三、OLTP測試環境

初始化測試庫環境,對已經準備好的數據庫進行操作

首先需要在準備好的數據庫中創建一個名為,sbtest的庫,不可更改必須叫這個名字,能看得懂lua腳本可以隨意更改,這個是個大前提

1、需要切到這個目錄下進行操作,如果不切目錄也可以使用絕對路徑,oltp.lua腳本路徑

[root@test db]# cd /data/package/sysbench-0.4.12-1.1/sysbench/tests/db

2、在sbtest庫中,創建10個測試表,每個測試表中100000條記錄(行),填充隨機生成的數據

[root@test db]# sysbench ?--mysql-host=192.168.4.100 ? ?--mysql-user=admin ?--mysql-password=FJRUDKEISLWO ? ?--test=oltp.lua ? --oltp_tables_count=10 ?--oltp-table-size=100000 ?--rand-init=on ?prepare

參數解釋:

--test=tests/db/oltp.lua 表示調用 ./tsysbench-0.4.12-1.1/sysbench/tests/db/oltp.lua 腳本進行 oltp模式測試

--oltp_tables_count=10 表示會生成 10 個測試表

--oltp-table-size=100000 表示每個測試表填充數據量為 100000

--rand-init=on 表示每個測試表都是用隨機數據來填充的

他人經驗:

真實測試場景中,數據表建議不低于10個,單表數據量不低于500萬行,當然了,要視服務器硬件配置而定。如果是配備了SSD或者PCIE SSD這種高IOPS設備的話,則建議單表數據量最少不低于1億行。

四、進行OLTP測試

[root@test db]# sysbench ?--mysql-host=10.10.95.235 ? ?--mysql-user=admin ?--mysql-password=FJRUDKEISLWO ? ?--test=oltp.lua ? --oltp_tables_count=10 ?--oltp-table-size=10000000 ? --num-threads=10 ?--oltp-read-only=off --report-interval=10 ?--rand-type=uniform ?--max-time=120 --max-requests=0 ?--percentile=99 run >/data/log/sysbench.log

參數解釋:

--num-threads=8 ? ? ? ?# 表示發起 8個并發連接

--oltp-read-only=off ?#表示不要進行只讀測試,也就是會采用讀寫混合模式測試

--report-interval=10 ? #表示每10秒輸出一次測試進度報告

--rand-type=uniform ?#表示隨機類型為固定模式,其他幾個可選隨機模式:uniform(固 ?定),gaussian(高斯),special(特定的),pareto(帕累托)

--max-time=120 ? ? ? ? ? #表示最大執行時長為 120秒

--max-requests=0 ? ? ? #表示總請求數為 0,因為上面已經定義了總執行時長,所以總請求數可以設定為 0;也可以只設定總請求數,不設定最大執行時長

--percentile=99 ? ? ? ? ?#表示設定采樣比例,默認是 95%,即丟棄1%的長請求,在剩余的99%里取最大值

他人經驗:

真實測試場景中,建議持續壓測時長不小于30分鐘,否則測試數據可能不具參考意義。

五、測試結果解讀

sysbench 0.5: ?multi-threaded system evaluation benchmark

Running the test with following options:

Number of threads: 8

Report intermediate results every 10 second(s)

Random number generator seed is 0 and will be ignored

Threads started!-- 每10秒鐘報告一次測試結果,tps、每秒讀、每秒寫、99%以上的響應時長統計

[ ?10s] threads: 8, tps: 1111.51, reads/s: 15568.42, writes/s: 4446.13, response time: 9.95ms (99%)

[ ?20s] threads: 8, tps: 1121.90, reads/s: 15709.62, writes/s: 4487.80, response time: 9.78ms (99%)

[ ?30s] threads: 8, tps: 1120.00, reads/s: 15679.10, writes/s: 4480.20, response time: 9.84ms (99%)

[ ?40s] threads: 8, tps: 1114.20, reads/s: 15599.39, writes/s: 4456.30, response time: 9.90ms (99%)

[ ?50s] threads: 8, tps: 1114.00, reads/s: 15593.60, writes/s: 4456.70, response time: 9.84ms (99%)

[ ?60s] threads: 8, tps: 1119.30, reads/s: 15671.60, writes/s: 4476.50, response time: 9.99ms (99%)OLTP test statistics:

queries performed:

read: ? ? ? ? ? ? ? ? ? ? ? ? ? ?938224 ? ?-- 讀總數

write: ? ? ? ? ? ? ? ? ? ? ? ? ? ?268064 ? ?-- 寫總數

other: ? ? ? ? ? ? ? ? ? ? ? ? ? 134032 ? ?-- 其他操作總數(SELECT、INSERT、UPDATE、DELETE之外的操作,例如COMMIT等)

total: ? ? ? ? ? ? ? ? ? ? ? ? ? 1340320 ? ?-- 全部總數

transactions: ? ? ? ? ? ? ? ? ? ? ? ?67016 ?(1116.83 per sec.) ? ? -- 總事務數(每秒事務數)

deadlocks: ? ? ? ? ? ? ? ? ? ? ? ? ? 0 ? ? ?(0.00 per sec.) ? ? ? ? ? ? ? ?-- 發生死鎖總數

read/write requests: ? ? ? ? ? ? ? ? 1206288 (20103.01 per sec.) ? ?-- 讀寫總數(每秒讀寫次數)

other operations: ? ? ? ? ? ? ? ? ? ? ?134032 (2233.67 per sec.) ? ?-- 其他操作總數(每秒其他操作次數)

General statistics: ? ?-- 一些統計結果

total time: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 60.0053s ? ?-- 總耗時

total number of events: ? ? ? ? ? ? ?67016 ? ?-- 共發生多少事務數

total time taken by event execution: 479.8171s ? ?-- 所有事務耗時相加(不考慮并行因素)

response time: ? ?-- 響應時長統計

min: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?4.27ms ? ?-- 最小耗時

avg: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?7.16ms ? ?-- 平均耗時

max: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 13.80ms ? ?-- 最長耗時

approx. ?99 percentile: ? ? ? ? ? ? ? 9.88ms ? ?-- 超過99%平均耗時

Threads fairness:

events (avg/stddev): ? ? ? ? ? 8377.0000/44.33

execution time (avg/stddev): ? 59.9771/0.00

最重要的參數指標:

總的事物數,每秒事務數,時間統計信息(最大、最小、平均、99%以上語句響應時間)

上述測試方式是在云RDS(UDB),數據庫實例驗證的,我測試的時候是采用了迅達云和ucloud云進行的對比性測試,更容易拿出數據。

在測試環境,也就是自建的數據庫,會發生各種情況,只能依靠個人排查能力了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/272716.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/272716.shtml
英文地址,請注明出處:http://en.pswp.cn/news/272716.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

自學編程的六點技巧

有一天,我的一個在學編程的朋友問我:“我想快速學習編程,你有什么好的推薦嗎?我曾在上大學的時候自學過編程,這么多年過去了,我意識到我或許是在用最困難的方式去學習和了解編程。本來我完全可以用更快的速…

AngularJs $anchorScroll、$controller、$document

$anchorScroll 根據HTML5的規則,當調用這個函數時,它檢查當前的url的hash值并且滾動到相應的元素。 監聽$location.hash()并且滾動到url指定的錨點的地方。可以通過$anchorScrollProvider.disableAutoScrolling()禁用。 依賴:$window $loca…

Jquery操作復選框總結

1、獲取單個checkbox選中項(三種寫法)$("input:checkbox:checked").val()或者$("input:[typecheckbox]:checked").val();或者$("input:[nameck]:checked").val();2、 獲取多個checkbox選中項$(input:checkbox).each(function() {if ($(this).att…

java對五排六列考生隨機排座,Java入門第三季6-5擴展練習-隨機字符串排序

原課程地址https://www.imooc.com/video/4254* 擴展練習要求* 利用Collections.sort()方法對泛型為String的List進行排序版本2* 1.創建完List之后,往其中添加10條隨機字符串* 2.每條字符串的長度為10以內的隨機整數* 3.每條字符串的每個字符都是隨機生成的&#xff…

信息安全系統設計基礎第十周學習總結

第八章 異常控制流 (1)控制流:控制轉移序列。 控制轉移:從一條指令到下一條指令。 異常控制流:現代操作系統通過使控制流發生突變來對系統狀態做出反應,這些突變稱為異常控制流。 (2&#xff09…

MVC、 MVP、 MVVM之間的區別

一、 簡介三者的目的都是分離關注,使得UI更容易變換(從Winform變為Webform),使得UI更容易進行單元測試。二、MVC/MVP1 、MVC1、View接受用戶的交互請求2、View將請求轉交給Controller3、Controller操作Model進行數據更新4、數據更…

java散列法的運用實例,Java HashMap compute() 使用方法及示例

Java HashMap compute() 使用方法及示例Java HashMap compute()方法計算一個新值,并將其與哈希映射中的指定鍵相關聯。compute()方法的語法為:hashmap.compute(K key, BiFunction remappingFunction)compute()參數compute()方法有兩個參數:ke…

team geek

1. 轉載自http://book.douban.com/review/6007037/,版權歸丸子(^.^)v所有。 New Google employees (we call “Nooglers”) often ask me what makes me effective at what I do. I tell them only half-jokingly that it’s very simple: I do the Right Thing for…

程序員經典語錄

1.A good programmer is someone who always looks both ways before crossing a one-way street. (Doug Linder)好的程序員即使在過單行道時也總是會環顧兩邊。2.Don’t worry if it doesn’t work right. If everything did, you’d be out of a job. (Mosher’s Law of Soft…

數字圖像處理應用matlab,數字圖像處理與應用(MATLAB版)

第 1章 緒論 1n1.1 圖像的概念 1n1.2 圖像的分類 2n1.3 圖像的表示 2n1.3.1 圖像信號的表示 2n1.3.2 數字圖像的表示 3n1.3.3 顏色模型 4n1.4 …

HDU 3948 不同回文子串個數

集訓隊論文中有求不同子串個數的做法,就是掃一遍height數組,過程中根據height數組進行去重。對于本題也是雷同的,只是每一次不是根據與排名在上一位的LCP去重,而是與上一次統計對答案有貢獻的后綴進行比較去重。 幾組數據 abacaba…

如何成為一名優秀的程序員?

1、理解技術債務技術債務就像信用卡一樣,會有很高的利息率,時間越長,修復所花的代價就越大,程序員對這個要有深刻的認識。同時團隊應該培養一種保證設計質量的文化,應當鼓勵重構、同時也應當鼓勵其它有關代碼質量的實踐…

php 發郵件附件pdf,php – 使用TCPDF發送電子郵件附件 | 碼農網

我有一個簡單的課程申請表,填寫完成后,會向申請人發送一封電子郵件,并附上他選擇作為pdf附件的課程的費用報價.我正在使用TCPDF并使用會話變量將數據從表單傳遞到庫.內容采用 html 格式.生成PDF并根據需要作為附件發送.問題是它是空白的..只有頁眉和頁腳在文檔中.在 linux 中尤…

數據庫同步傳輸軟件

Navicat轉載于:https://www.cnblogs.com/jizl/p/4995959.html

DoNet 高效開發必備開發工具

工欲善其事,必先利其器,沒有好的工具,怎么能高效的開發出高質量的代碼呢?本文為 ASP.NET 開發者介紹一些高效實用的工具,包括 SQL 管理,VS插件,內存管理,診斷工具等,涉及…

php eval 語法錯誤,PHP eval和捕獲錯誤(盡可能多)

我找到了一個很好的替代方案/答案 .首先,讓我首先說當我設置error_reporting(E_ALL)時,nikic的建議有效;通知顯示在PHP輸出中,并且由于OB,它們可以被捕獲 .接下來,我發現了這個非常有用的代碼:/*** Check t…

防止表單重復提交的解決方案整理

用戶在操作表單Post數據時往往會出現表單數據重復提交的問題,尤其在Web開發中此類問題比較常見。刷新頁面,后退操作以前的頁面,單機多次按鈕都會導致數據重復提交。此類問題是因為瀏覽器重復提交HTTP請求導致。下面列出了四種比較常用的解決方…

免費字典api ,查詢漢字完整信息

最大最全的新華漢語詞典,字典api根據接口列表返回的漢字id,查詢漢字完整信息。 接口名稱:字典api 接口平臺:第三方api 接口地址:http://v.juhe.cn/xhzd/queryid 支持格式:json/xml 請求方式:htt…

python正則去除換行符,關于python:用于刪除換行符的正則表達式

我是Python的新手,我遇到了正則表達式問題。 我正在嘗試刪除文本文件中每行末尾的換行符,但前提是它跟在小寫字母后面,即[a-z]。 如果該行的結尾以小寫字母結尾,我想用空格替換換行符/換行符。這是我到目前為止所得到的&#xff1…

收集一些程序員勵志經典名言

1、作為一個真正的程序員,首先應該尊重編程,熱愛你所寫下的程序,他是你的伙伴,而不是工具。2、程序員可以讓步,卻不可以退縮,可以羞澀,卻不可以軟弱,總之,程序員必須是勇…