在軟件領域,無論是開發、測試、運維都對一個詞不會陌生,那就是:壓測。在百度百科里是這么定義壓測的:

壓測,即壓力測試,是確立系統穩定性的一種測試方法,通常在系統正常運作范圍之外進行,以考察其功能極限和隱患。

本來是件很有意義的事,可是現實中往往尷尬的事就那么自然的發生了:明明幾輪壓測下來沒啥問題,但是業務高峰一來系統還是扛不住。故事通常會這樣繼續——就在研發同事一籌莫展的時候,運維同事及時的請出了三大法寶:擴容、限流與降級,問題迎刃而解。

讓人不得不感慨:姜還是老的辣,坑還是運維踩的多!

感慨之余,我們不禁要問,與其這樣是不是說壓測就沒有用了呢?其實不然。

很多壓測都做對了么?

我們知道,對于壓測這件事其實每個人或角色理解的都不見得完全準確,讓我們先從壓測的目的說起。

有一些人認為壓測就是在測試系統或資源的極限,所以對應的壓測方案也是有著鬼斧神工的亮點:

  • 把這兩臺F5設備連接數打滿
  • 運營商有4個G的帶寬,壓測得能跑滿
  • 服務器集群每臺機器CPU、內存利用率都得能到95%
  • ……

以上只是舉例,請各位無需對號入座。其實想表達的是,我們是不是該靜下心來問下自己,到底為什么要做壓測呢?這里找到一張圖片,從用戶角度和技術角度講了我們做壓測的目的是什么。

(圖片來自極客時間)

所以,到此還需要引入另外一個概念,我們的壓測其實核心做的事叫:容量保障。它有兩個最關鍵的點:

  1. 以盡可能小的成本確保系統當前和未來的容量充足,即容量規劃
  2. 解決已知的容量問題,預防未知的容量問題,即容量治理

該怎么做好容量保障?

談到這里有人可能會說是不是有點跑題了,并且這個問題貌似也有點多余,答案當然是做好容量測試也即壓測唄。嗯,回答正確,但是問題就在于知易行難呀。

阿里前任 CTO 行癲在 2018 年雙 11 啟動會上說過一句話:“容量測試是驗證手段,不是測試手段”。

換句話說,我們應該先努力設計和建造出滿足容量要求的服務,再通過容量測試去驗證它,而不是靠容量測試去反復探測服務容量瓶頸,再去不停地優化服務或擴容。我認為這才是對容量測試的現代化理解。

是不是有種醍醐灌頂的感覺,原來之前提到的壓測方案從根本上就是有問題的。問題的盡頭會是答案么?我們該如何設計一個好的壓測方案呢?其實理論上并不復雜。

通常來講,一次正確的壓測需要我們得確認好壓測范圍、制定壓測方案、實施壓測、最后進行數據分析。我們一步步來講,先確認測試范圍,這里還是一張圖來說清楚這件事:

(圖片來自極客時間)

總結一下,最重要的服務主要有以下四個:

  • 關鍵路徑上的核心服務
  • 有明顯流量峰值特征的服務
  • 對響應時間敏感的服務
  • 占用資源大的服務

服務有了,剩下的就是確認怎么來測了?幸好,基調聽云在這塊有著自己的見解。

你該做的是全鏈路壓測方案

根據我們一些行業客戶的經驗來看,對未來可能產生的流量峰值而言,任何預防性的穩定性保障手段,都不如把實際峰值場景模擬出來“看一看” 來的有效。這就好比建造一座大壩,預計能抵擋千年一遇的洪水,但是否能達到這個目標,還是需要經歷多次洪水考驗才能證明的。全鏈路壓測就是通過模擬這場千年一遇的洪水,來驗證服務系統是否能承載預估的流量峰值。

為什么單鏈路壓測無法排除系統整體容量風險呢,因為整體系統的容量不是由多條“單鏈路”的容量簡單相加而得的。我們看一下下面這張圖,它表達的含義是,應用服務的容量除了受自身影響,還受依賴服務的影響,而依賴服務又可能有其他調用方,甚至是一些外部服務,這些影響經過幾層累積后,最終的影響面極難判斷。

(圖片來自極客時間)

而全鏈路壓測直接從全局視角出發,它的本質是基于線上真實環境和實際業務場景,通過模擬海量的用戶請求,來對整個系統的容量進行評估的手段。

說白了,不能真實模擬業務場景有數據的壓測,某種程度上都可以說成是“偽”壓測。

沒有可觀測性會“差之毫厘,失之千里”

壓測具有天然的結果不可預見性,再好的壓測方案如果不能得到有效的數據來分析都會使效果大打折扣。尤其是在復雜的、深度的系統環境下,通過獲取全鏈路的追蹤數據及指標數據實現整個壓測過程的可觀測性顯得尤為重要。

傳統壓測中,我們的監控手段比較有限,一般多集中在對基礎資源層的監控上,最多也就是加上開源的APM監控,但對于真實用戶端和真實網絡情況是缺乏必要的監控手段的。

基調聽云通過多年APM行業的積累,借助多維遙測技術及問題定位能力實現了具備可觀測性的全鏈路混合壓測方案。

東西看著不少,我們來關注重點好了。

可觀測性:通過端到端的遙測數據實現可觀測性。

全鏈路:提供從真實用戶體驗操作,到應用、組件、基礎資源的壓力以及Trace可全量進行追蹤的能力。

混合:JMeter的接口壓測+真實用戶體驗模擬瀏覽器的壓力形成混合壓力。

光說不練終是假把式

某省考試院重要考試報名前,使用基調聽云壓測服務對系統進行了多輪壓測,其中最高模擬用戶數達到了11萬/分鐘,基本上高度模擬了真實流量高峰場景。

在全棧監控下,問題基本上無處藏身:

發現連接池問題,優化才是王道:

讓結果來說明一切吧:

似乎該做個總結才好,就算不是老王面對這么好的瓜不自夸也挺難的。

如果您對基調聽云的具備可觀測性的全鏈路混合壓測方案感興趣,隨時點擊右下角“聯系我們”吧。

  • 隨著網絡技術的快速發展網絡性能監控變得越來越重要。網絡性能監控是對網絡設備、服務器、應用程序等進行監控和管理的過程,以確保網絡的穩定性和可靠性。網絡性能監控基礎?包括以下四個方面。

    2023-10-20

  • 應用性能對于企業的成功具有關鍵作用。為了確保應用的高可用性、穩定性和出色用戶體驗,越來越多的企業轉向了APM平臺。這一智能解決方案不僅能夠實時監測、分析和優化應用性能,還為企業創造了提高效率和提升用戶滿意度的機會。

    2023-08-18

  • 移動應用性能管理?是指通過監測、分析和優化移動應用程序的性能,以提高依賴移動應用的用戶體驗和應用性能。它涵蓋了多種應用形式,包括web應用、APP、小程序和行為分析等。

    2023-08-10

  • 在當今的數字化時代,互聯網已經成為我們日常生活和工作中不可或缺的一部分。然而,隨著網絡的復雜性和規模的增長,確保其穩定、安全和高效運行變得越來越困難,這時候網址撥測監控?應運而生。本文將探討網址撥測監控的概念、功能、實施方法和其在保障網絡安全和提高用戶體驗中的關鍵作用。

    2024-01-19

  • 一些數字化企業,都有自己的應用程序,而這些應用是與企業服務質量息息相關的。apm應用性能管理產品?帶來了全新的網絡和應用程序管理方式,給數字化企業提供了有力的保障。那么,應當如何選擇這類管理產品呢?

    2023-08-22