關於資料庫壓力測試的故事 - - CodingNote.cc

文章推薦指數: 80 %
投票人數:10人

此前也做過很多次壓力測試,對於資料庫方面來說,主要是搜集伺服器當時的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作業系統 三星 豐田 華為 圖賞 小米 微信 微軟 新冠疫苗 新冠病毒 新冠肺炎 日本 顯示卡 智慧手機 比亞迪 汽車 特斯拉 生科醫學 電動車 電影 演算法 美國 騰訊 晶片 蘋果 榮耀 . 简体中文 大陆简体 港澳繁體 马新简体 马来西亚简体 繁體中文



請為這篇文章評分?