關於資料庫壓力測試的故事 - - CodingNote.cc
文章推薦指數: 80 %
此前也做過很多次壓力測試,對於資料庫方面來說,主要是搜集伺服器當時的CPU,記憶體使用,以及關注AWR報告SQL執行部分是否有異常,便於正式上線後, ...
關於資料庫壓力測試的故事
2019年10月7日
筆記
最近配合某客戶做了一個關於XX系統的壓力測試,其實經過和客戶的溝通得知,客戶此系統上線後壓力並不大,但由於應用方前期的表現不是特別盡如人意,對此不太信任,所以要求本次壓力測試著重觀察。
參與方
我、客戶、應用方(我和客戶簡稱甲方,應用方簡稱乙方)
環境配置
資料庫:RAC一體機集群(為方便統計,應用統一鏈接一個節點)
壓測工具:jmeter
壓測場景
大概10個大場景,每個場景有100、200、3003個級別的並發小場景,每個小場景壓測10分鐘
壓測數據量
壓測數據為應用方編造,資料庫大小2G,其中涉及的關鍵業務表數據量大概有40萬,10萬,3萬不等的數據
壓力測試
此前也做過很多次壓力測試,對於資料庫方面來說,主要是搜集伺服器當時的CPU,記憶體使用,以及關注AWR報告SQL執行部分是否有異常,便於正式上線後,系統資源的分配,從壓測數據量來看,2G數據可以說是很小的數據量,另外並發最大300,對於2G數據來說,也不算大,本以為壓力測試可以順利進行,那也只是理想很豐滿。
插曲一
在測試其中一個場景A300並發,jmeter壓測工具開始報錯(具體報的什麼錯,暫不追究),乙方給的恢復是數據量太大,達不到300,繼續下一個場景B,100並發,在進行完這個100並發的場景後,就有了如下對話。
甲方:xxx表數據上一個場景A300並發時,還是10萬,這個場景B100並發的場景跑完變成3萬條了。
乙方(壓測人員):@經理這個我不是很懂,你幫忙看下。
乙方(經理):這個我找人處理的,十萬條數據數據量比較大,實際沒有那麼大的
甲方:這在測試呢你們數據清理了?
甲方:今天把你們做測試數據的表和對應的數據量都寫到方案里確定下來。
甲方:不要測試過程中刪數據。
甲方:不能為了達到並發標準在哪刪數據,達不到就是達不到,後期可以優化的。
甲方:確定下來測試過程中不要做小動作。
乙方(壓測人員):刪數據這個我就不知道了,一般壓力測試的時候都不會讓他們做什麼操作的。
從上面的對話,大概對情況有一個了解,乙方可能是認為,數據量大所以場景A300並發報錯,在沒有和甲方溝通的情況下,私下清理了主業務表數據量,不巧被甲方發現,甲方大為不滿。
其實壓力測試就是為了確認系統的運行壓力,如果都和乙方那樣,私下清理數據,也就失去了壓力測試的實際意義,在此,給各位奮戰的DBA和應用人員一個建議,實事求是,實時溝通。
插曲二
由於壓力測試,每個大場景都有3個不同並發級別的小場景,但是在分析AWR報告時發現,其中SQL執行次數部分並沒有明顯的變化,100並發SQL執行次數30000,200並發SQL執行次數30000多,根據以往的壓測經驗來看,這肯定是有問題的,同時在系統CPU使用來看,也證明了這一點,兩個不同級別的並CPU使用並無明顯差異,然後甲方乙方開始。
甲方:100和200在資料庫後台執行的SQL次數沒有太大差別
乙方(壓測人員):10分鐘100個並發,這麼多次;10分鐘200個並發,應該不會變成2倍吧。
乙方(壓測人員):這個是總次數吧?
甲方:是。
乙方(壓測人員):那我覺得這個沒問題吧?
乙方(壓測人員):你說的這個暫時記錄著,回頭他們看下。
乙方(壓測人員):你說的情形,我諮詢過了,可能會涉及到修改對應的一個服務裡面的參數。
乙方(壓測人員):所以今天先100的跑了吧。
看到這裡,基本明白了,前面幾個並發測試等於是白測試了,這也告訴我們,做事還是細緻點好,同時要說服乙方,就要拿出證據,免得雙方扯皮,怪不得客戶提前都說,這次壓力測試要著重點看。
假如只是為了應付工作,簡單的搜集點數據,然後事後再分析,那反工時必然的,吃一塹長一智。
插曲三
壓力測試終於到了最後3個場景,對於前幾個CPU壓力表現還算正常,起碼是有壓力的,但最後3個場景的CPU壓力幾乎沒有,難道是一體機的性能太好?那也不應該,再說這個場景是關於客戶分析,市場分析的場景,從字面意思看,應該會訪問很多數據表才對,這次又實實在在的分析各個運行的SQL,以及具體涉及的業務表。
甲方:上個場景客戶分析中XXXX表是什麼表?
乙方(壓測人員):我問下去。
甲方:那個客戶分析的場景資料庫伺服器幾乎沒壓力後台顯示訪問比較多的是這張表。
乙方(經理):剛剛那個是地區省份的篩選。
甲方:哦客戶分析後台的數據來源只有這一個主表么?
就在這時,乙方測試人員發了一個哭哭的表情,我就意識到問題有出現了。
乙方(壓測人員):你一問,我看了一下。
乙方(壓測人員):xx分析的腳本,之前調的時候有部分禁掉了。
乙方(壓測人員):重新跑下xx分析吧,我停了。
甲方:。
。
。
。
。
。
。
。
。
。
。
。
。
。
。
看來甲方最開始的不信任還是有依據的,這個壓力測試在此之前,乙方已經準備了一周左右,但還是出現各種狀況。
總結
針對此次測試,除了插曲一乙方做的不地道之外,另外2個都是乙方前期準備的問題,在此,我們不對乙方做過於『積極』的評價。
對於我來說,有以下感悟:
1、不管是對自己或者客戶,做事要以主人公的心態,抱著應付了事,害人害己呀,比如案例中XX方
2、和其他環節的人員溝通不確定性問題時,需要拿出確鑿證據,免得雙方踢皮球
3、良好的溝通是客戶服務的第一環節,或許你能力暫時不夠,但不能糊弄客戶,誰都不是傻子。
分享此文:分享到Twitter(在新視窗中開啟)按一下以分享至Facebook(在新視窗中開啟)按一下以分享到Telegram(在新視窗中開啟)分享到Pinterest(在新視窗中開啟)更多點這裡列印(在新視窗中開啟)分享到LinkedIn(在新視窗中開啟)分享到Reddit(在新視窗中開啟)分享到Tumblr(在新視窗中開啟)分享到Pocket(在新視窗中開啟)分享到WhatsApp(在新視窗中開啟)按一下即可分享至Skype(在新視窗中開啟)
RelatedPosts
2021年1月23日
RabbitMQ六種工作模式有哪些?怎樣用SpringBoot整合RabbitMQ
目錄一、RabbitMQ入門程式二、Workqueues工作模式三、Publish/Subscribe發..
2021年1月7日
學習筆記之Python人機交互小項目二:名片管理系統
Previouspost事實數據分析——Storm框架(一)
Nextpost【前端必知】膠水(框架)Stencil.js
VirMach便宜VPS
BlackFridayFlashSale
(2021/9/14~)
1CoreCPU
1GBRam
20GBSSD
1年只要USD$5up!!!
Tips:Offer10分鐘更新一次
Newcustomers,75%offfor2months.
1CoreCPU
1GBRam
25GBSSD
每月只要USD$1.75!!!
VirMachVPSHosting
VPSGamersVPSHosting
VPSCraftVPSHosting
VPSharedVPSHosting
QNews
熱門文章
網傳「口罩消毒殘留物會致癌」戴前要抖一抖?真相來了
低清小電影一鍵變4K大片?這軟體神了:效果來感受下
奇異のtravel奇幻之旅2020-09-24
NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
【譯】在Linux上不安裝Mono構建.NETFramework類庫
不要小瞧數組
Tomcat使用執行緒池配置高並發連接
統一流控服務開源:基於.NetCore的流控服務
java多執行緒—-悲觀鎖與樂觀鎖
Wireshark解密HTTPS流量的兩種方法
熱門搜尋.NET
.NETCore
5G
AMD
c#
CPU處理器
docker
Intel
iPhone12
iPhone手機
JAVA
javascript
linux
MySQL
NVIDIA
Python
Redis
Redmi
Windows10
Windows作業系統
三星
豐田
華為
圖賞
小米
微信
微軟
新冠疫苗
新冠病毒
新冠肺炎
日本
顯示卡
智慧手機
比亞迪
汽車
特斯拉
生科醫學
電動車
電影
演算法
美國
騰訊
晶片
蘋果
榮耀
.
简体中文
大陆简体
港澳繁體
马新简体
马来西亚简体
繁體中文
延伸文章資訊
- 1資料庫壓力測試工具Hammerdb - IT閱讀
資料庫壓力測試通過模擬使用者真實的應用場景,為資料庫效能和可擴充套件性的評估提供了有效的方式。通過壓力測試,資料庫系統廠商及使用者可以瞭解資料庫 ...
- 2SQL 壓力測試實戰篇 - GetIt01
針對資料庫的測試,市面上已經有很多工具了,Google 上搜一下sql testing tool , 他為你選出的工具,琳琅滿目,看花雙眼。 比如:40+ Best Database Testi...
- 3[資料庫]000 - Sysbench 資料庫壓力測試工具 - IT人
000 - Sysbench 資料庫壓力測試工具sysbench 是一個開源的、模組化的、跨平臺的多執行緒效能測試工具,可以用來進行CPU、記憶體、磁碟I/O、執行緒、 ...
- 4資料庫壓力測試方法小結
在前面的壓力測試過程中,主要關注的是對介面以及伺服器硬體效能進行壓力測試,評估請求介面和硬體效能對服務的影響。但是對於多數Web應用來說,整個系統 ...
- 5一個快要被忘記的資料庫開發崗位,但值得被尊重 - Medium
資料庫測試,似乎是被人遺忘的資料庫職業,但依然是不錯的選擇。 ... 如果要測試併發壓力,就不能用單元測試;要測試新功能,就不能執行迴歸測試。