記錄一下效能測試實戰

转圈發表於2024-09-25

在網上搜尋效能測試相關資訊,大部分都是工具的使用,指令碼錄製。看了很多但到自己實際壓測的時候,還是不知道怎麼動手,這次開貼 1.為了自己記錄使用 2.想要各路大佬指出壓測步驟中錯誤的地方,讓每個想做壓測的人都有一個案例可以抄襲

1.壓測前景是,最近迭代了一個功能,上級給到指令:進行壓測。此次為第一個坑,大部分公司的產品和主管是不會給你一個目標,只會讓你去壓測,怎麼壓什麼是目標結果是什麼,大家都不清楚。基於這種情況自己來羅列目標:首先我透過以往活動情況在 SLB 上看到併發連擊數 1.6w 左右,在秒殺活動下達到 2.6w。此次目標為 SLB 達到如此連線數下每個壓測場景需要達到 90% 響應時間 2S 以下,ecs 和 rds 記憶體和 cpu 不超過 70%。吞吐量本人沒什麼經驗不知道如何去估計,只能走一步看一半
2.壓測方案,壓測工具是用到 jmeter,壓測場景以頁面為維度,比如進入首頁作為一個場景,那首頁下的 5 個介面都作為一個場景壓測。(這裡我也不清楚是否對錯,希望有大佬看見能夠指點)。再網上了解一臺 4 核 8G 的電腦正常就支援 500 個併發,所以會用到阿里雲上面的壓測工具,這個上面可以支援開多臺機器好達到 1w 起步的併發。(公司由於壓測不是很平凡,所以沒有壓測機器給與壓測,這塊想確認一下:我 slb 到達 2w 是不是一定得讓執行緒數達到這個值)
3.壓測環境搭建:這個由運維人員幫助,搭建了一個壓測環境,這塊不多做描述,對我而言壓測環境方便在,我可以關閉介面的驗籤,然後自己寫了一個任意手機號獲取 token 的介面,方便自己造資料使用。
4.壓測資料準備:會員資料透過準備的測試介面(傳手機號返回 token,如果手機號會員不存在則自動建立會員);活動資料直接透過介面呼叫建立出來。為了避免獲取 token 介面影響真實壓測資料,先寫指令碼把所有 token 取出到 csv 檔案中給後面壓測介面使用

開始壓測,首先本地進行壓測,壓測活動主頁場景包含,活動資訊查詢,子活動列表查詢,使用者活動參與資訊介面,訂閱訊息模板。本地執行緒 700 持續 2 分鐘:壓測結果:SLB 達到 700 連線數,吞吐量總體 200,響應時間 95% 為 12s,異常無。壓測結果感人檢視了一下,資料庫壓力直接 100%,應該是這個地方導致,檢視了一下索引什麼都已經加過了,目前還沒有解決方案。等待後續

好訊息,找到一個地方沒走索引,先加上試試
無敵;加完之後吞吐量達到 1200,之前每個 sql 都要全表掃描 5w 條資料,改完直接一條。感謝索引

相關文章