天天看點

新服務上線,怎麼進行容量規劃

作者:品質技術知識

随着網際網路業務的快速發展,越來越多的企業需要面對高并發的挑戰,如何進行容量規劃成為了每一個運維工程師必須要面對的問題。本文簡要介紹如何對服務進行容量規劃。

新服務上線,怎麼進行容量規劃

新系統上線如何規劃容量?

定義業務需求和使用者量

首先需要确定系統的業務需求和預期使用者量,包括并發使用者數、每秒鐘請求量、每個請求的處理時間等名額。這些名額将決定系統所需的硬體資源和軟體配置。

測試系統性能和負載

為了更好地了解系統的性能和負載情況,可以進行一些基準測試和壓力測試。這些測試可以幫助确定系統的瓶頸和性能瓶頸,并提供更好的容量規劃參考。

在進行容量規劃時,需要考慮預期的并發使用者數、平均請求響應時間、最大并發請求數等因素,進而估算出微服務所需的硬體資源。同時,需要根據業務的實際情況,合理地選擇部署方式和架構設計,以確定系統能夠滿足業務需求并保持穩定性。

TPS(Transactions Per Second,每秒事務數)是指系統在機關時間内能夠處理的事務數量,其中“事務”可以是任何類型的請求或操作。在微服務架構中,TPS通常是衡量系統性能的重要名額之一。

計算系統需要承受的 TPS 可以按照以下步驟進行:

  1. 确定每個請求的平均處理時間(Average Transaction Time,ATT)。

ATT 是指處理一個請求所需的平均時間,包括從請求到響應傳回的全部時間。ATT 的值通常需要通過測試來确定,例如在生産環境中進行壓力測試,以确定每個請求的處理時間。

  1. 計算每秒鐘可以處理的請求數。

TPS = 1 / ATT

例如,如果 ATT = 100ms(0.1秒),那麼每秒鐘可以處理的請求數就是:

TPS = 1 / 0.1 = 10

确定硬體資源

根據系統的業務需求和使用者量,可以确定所需的硬體資源,包括CPU、記憶體、磁盤、網絡等方面。需要考慮到系統的擴充性和容錯性,以及未來的業務增長。

配置軟體環境

在确定硬體資源之後,需要根據系統的業務需求和硬體配置,進行軟體環境的配置和優化。包括作業系統、中間件、資料庫等方面。

監控系統狀态

在系統上線之後,需要及時監控系統的狀态和性能,包括CPU使用率、記憶體使用率、磁盤空間、網絡流量等名額。這些名額可以幫助及時發現和解決系統的問題,同時也可以提供更好的容量規劃參考。

彈性伸縮

最後,需要考慮系統的彈性伸縮。根據實際業務情況和系統負載情況,需要實作系統的彈性伸縮功能,以確定系統能夠自動适應不同的負載情況,并且能夠保持高可用性和性能。

新服務上線,怎麼進行容量規劃

定期JVM優化和調整

在系統上線之後,需要定期進行優化和調整,以滿足系統的性能需求和業務需求。需要根據系統的性能資料和使用者回報,及時進行優化和調整。

Step1:該如何進行垃圾回收器的選擇?

垃圾回收器的選擇取決于系統的特點和需求。對于高并發的系統,通常選擇CMS和G1垃圾回收器,因為它們的吞吐量高,可以有效地處理大量的請求。

Step2:如何對jvm進行規劃

對于Java虛拟機來說,記憶體分為堆記憶體和非堆記憶體。其中,堆記憶體又分為新生代和老年代。對于每個分區,我們需要根據系統的需求進行規劃。一般來說,新生代占整個堆記憶體的1/3至1/4,老年代占整個堆記憶體的2/3至3/4。

Step3:棧多少比較合适?

棧記憶體主要用于存儲方法調用的資訊,如局部變量、方法參數等。對于高并發的系統,棧記憶體的大小通常設定為512KB至1MB。

Step4:對象年齡應該為多少才移動到老年代比較合适?

對象年齡的設定需要根據系統的特點和GC政策來确定。一般來說,對象年齡設定為15至20比較合适。

Step5:多大的對象,可以直接到老年代比較合适?

對于高并發的系統,可以将對象大小設定為512KB至1MB,這樣可以減少GC的頻率,提高系統的吞吐量。

Step6:垃圾回收器CMS老年代的參數優化

對于CMS垃圾回收器,可以通過調整以下參數進行優化:

  • -XX:CMSInitiatingOccupancyFraction:設定老年代的空間使用率門檻值,超過這個門檻值後就開始執行CMS回收。
  • -XX:+UseCMSInitiatingOccupancyOnly:隻使用CMSInitiatingOccupancyFraction參數,忽略其他老年代GC觸發條件。
  • -XX:+UseConcMarkSweepGC:開啟CMS垃圾回收器。
  • -XX:+UseParNewGC:開啟年輕代的并行垃圾回收。

需要注意的是,CMS垃圾回收器的執行過程是與應用程式同時進行的,是以需要保證系統的CPU資源充足,以避免垃圾回收器和應用程式之間的競争。

Step7:配置OOM時候的記憶體dump檔案和GC日志

當系統發生OOM(記憶體溢出)時,需要通過記憶體dump檔案和GC日志來進行分析和定位問題。可以通過以下參數開啟記憶體dump和GC日志功能:

  • -XX:+HeapDumpOnOutOfMemoryError:發生OOM時自動生成記憶體dump檔案。
  • -XX:HeapDumpPath:指定記憶體dump檔案的儲存路徑。
  • -Xloggc:開啟GC日志功能,并指定日志檔案的儲存路徑。

需要注意的是,GC日志會對系統性能産生一定的影響,是以需要在生産環境中謹慎使用。

容量規劃是保證系統穩定性和性能的重要一環。在進行容量規劃時,需要充分考慮系統的特點和業務需求,并根據實際情況進行調整和優化。同時,在運作過程中,需要及時收集和分析系統的日志資訊,以便發現和解決問題。

繼續閱讀