性能調優五步法

来源:https://www.cnblogs.com/developer-tianyiyun/archive/2023/11/27/17859965.html
-Advertisement-
Play Games

Linux 內核從 2.5 版本開始針對 NUMA 架構做了大量優化工作,同時也提供了豐富的工具和介面,可以幫助我們很容易的完成訪問本地記憶體的設置。所以,通過適當的性能調優,可以提供更高的計算能力。 性能優化通常可以通過五個步驟完成 ...


本文分享自天翼雲開發者社區《性能調優五步法》,作者:x****n

Linux 內核從 2.5 版本開始針對 NUMA 架構做了大量優化工作,同時也提供了豐富的工具和介面,可以幫助我們很容易的完成訪問本地記憶體的設置。所以,通過適當的性能調優,可以提供更高的計算能力。

性能優化通常可以通過五個步驟完成

1.確認基線

性能優化第一步是確定當前性能,並明確性能應提升的程度。如果系統性能不佳,我們就需要花時間進行研究分析,但如果系統性能接近其峰值,那可優化的空間就微乎其微。性能基線必須是一種客觀可度量的指標,在明確如何度量特定系統或者應用程式的性能後,在調整和優化之前,運行應用程式並記錄其性能,這就是基線值。在記錄應用程式基線的同時我們需要對整個系統部件進行基準監控,包括CPU、記憶體、IO、網路吞吐、響應延時等系統運行數據。

2.壓力測試

採用應用系統加壓或者標準的壓力工具對系統進行壓力測試,使用性能監控工具觀察系統運行狀態,詳細記錄系統運行數據,精確的歷史記錄有利於我們定位系統瓶頸及確定後續優化手段是否有效的重要依據

3.監控瓶頸

系統在壓力狀態下,採用監控工具進行監控是為了確定系統的瓶頸(即可以優化的突破點)。系統的瓶頸通常在CPU過於繁忙、IO等待、網路等待、記憶體訪問延遲高等方面出現。在測試過程中,我們不僅需要關註被測系統本身,同樣需要註意是否由於硬體連接問題而導致性能異常。

4.瓶頸優化

確定系統瓶頸所在之後,接下來需要對瓶頸進行優化。瓶頸的優化是一個複雜的系統工程,我們必須在每一次調試後進行性能監控及系統狀態的記錄,已確保我們調試優化的方向,很多時候優化是需要多方面同步進行的,並非單一因素作用即可達到目標。在優化過程中我們也需要做好回滾的準備,保障系統的正常運行及可測量性。本文總結了一些常見的系統瓶頸及優化方案,供大家參考。

5.確認優化效果

實施優化方案後,重新進行壓力測試,通過監控工具確認瓶頸是否消除,系統性能是否達到目標。若瓶頸依舊存在,系統性能指標未提升,則需要重新進行5步法,若瓶頸消除,系統性能指標達到目標,則需詳細記錄優化方案,後續作為標準文檔進行輸出應用。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 主要介紹了第一個Spring MVC程式的環境搭建、父子項目結構、Tomcat配置、配置文件。對DispatcherServlet的講解,2個核心類型:1.RequestMappingHandlerMapping 2.RequestMappingHandlerAdapter,視圖解析器ViewRes... ...
  • matplotlib是基於python生態開發的一個可視化繪圖庫,它的出現讓python在數據分析及機器學習方面占了重要的一部分,目前很多數據分析及機器學習相關方面的工程都有使用到這個庫,並且由於其簡單易用,安裝簡單等方面的優勢深得廣大開發者的喜愛。 ...
  • HtmlAgilityPack是一個.NET平臺下的HTML解析庫,它可以將HTML文本轉換為DOM文檔對象,方便我們對HTML文本進行操作和分析。HtmlAgilityPack支持XPath語法,可以通過XPath表達式來獲取DOM節點,同時還提供了一些方便的API,可以實現HTML文本的解析、修 ...
  • MVC 的過濾器(Filters)也翻譯為“篩選器”。但是老周更喜歡翻譯為“過濾器”,意思上更好理解。 既然都叫過濾器了,就是在MVC的操作方法調用前後進行特殊處理的類型。比如: a、此調用是否已授權? b、在模型綁定之前要不要修改數據源?(可能含有兒童不宜的數據) c、在調用MVC方法前要不要改一 ...
  • 需要有的知識點: c# 基礎以及c#高級基礎 Ado.net 基礎 SqlServer 以及MySQL (都需要高級部分) Asp.net Mvc Core 基礎 1. 新手的煩惱 (1) SQL 拼不對,錯還不會找 (2) 開發效率低 (3) 如果發現欄位需要重命名,得挨個地方去修改 (4) 老闆 ...
  • 在 .NET Core 中,日誌是一個非常重要的組件,它可以幫助我們記錄應用程式的運行情況,以便在出現問題時進行排查。在本文中,我們將介紹五個優秀的 .NET Core 日誌框架,它們分別是 Serilog、NLog、Log4Net、Microsoft.Extensions.Logging 和 Lo ...
  • 1. 平均負載 平均負載是指單位時間內,系統處於可運行狀態和不可中斷狀態的平均進程數,也就是平均活躍進程數,它和CPU使用率並沒有直接關係。 可運行狀態的進程是指正在使用CPU或者等待CPU資源的進程。當我們使用類似於"ps"命令時,這些進程通常以"R"狀態(Running或Runnable)顯示。 ...
  • 哈嘍大家好,我是鹹魚 今天我們繼續來講一講 Kafka 當有消息被生產出來的時候,如果沒有指定分區或者指定 key ,那麼消費會按照【輪詢】的方式均勻地分配到所有可用分區中,但不一定按照分區順序來分配 我們知道,在 Kafka 中消費者可以訂閱一個或多個主題,並被分配一個或多個分區 如果一個消費者消 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...