Chuyển đến nội dung chính

第 48 課:效能測試和最佳化

使用 k6/Locust 進行負載測試、效能分析、瓶頸識別、K8s 叢集調整、應用程式最佳化和基準報告。

🔒 DevSecOps — 第 48 課 第 48 課:效能測驗與效能測驗最佳化

使用 Kubernetes HA 在本地部署微服務

第 12 部分:生產營運與生產頂點專案

xdev.asia

🎯 課程目標__HTMLTAG_66___
  • ✅ 使用 k6 (Grafana k6) 進行負載測試
  • ✅ 效能設定檔類型(負載、壓力、尖峰、浸泡)
  • ✅ 瓶頸辨識方法
  • ✅ K8s 叢集調校(核心、containerd、kubelet)
  • ✅ 應用級最佳化

第 1 部分:使用 K6 進行負載測試

程式碼區塊_0

程式碼區塊_1

程式碼區塊_2


第 2 部分:效能測試類型

___HTMLTAG_88__HTMLTAG_89___类型____HTMLTAG_90__HTMLTAG_91____目标___HTMLTAG_92__HTMLTAG_93___模式____HTMLTAG_94__HTMLTAG_95___持续时间___HTMLTAG_96__HTMLTAG_97___ ___HTMLTAG_100__HTMLTAG_101___負載測試___HTMLTAG_102__HTMLTAG_103___在預期負載下驗證 SLO___HTMLTAG_104__HTMLTAG_105___逐漸達到目標____HTMLTAG_106__HTMLTAG_105___ ___HTMLTAG_110__HTMLTAG_111___壓力測試___HTMLTAG_112__HTMLTAG_113___找到斷點____HTMLTAG_114__HTMLTAG_115___增加至失敗____HTMLTAG_116__HTMLTAG_117___3+___增加至失敗____HT158________ ___HTMLTAG_120__HTMLTAG_121___峰值測試___HTMLTAG_122__HTMLTAG_123___測試突發流量___HTMLTAG_124__HTMLTAG_125___瞬間跳至峰值____HTMLTAG_126__HTMLTAG_125___瞬間跳至峰值___101012112____ ___HTMLTAG_130__HTMLTAG_131___浸泡測試___HTMLTAG_132__HTMLTAG_133___查找記憶體洩漏、效能下降___HTMLTAG_134__HTMLTAG_135___持續中等負載____HTMLTAG_136__HTMLTAG_1374-MLTAG1374-13136__ ___HTMLTAG_140__HTMLTAG_141___斷點測試____HTMLTAG_142__HTMLTAG_143___找出最大吞吐量____HTMLTAG_144__HTMLTAG_145___逐步增加直到出現錯誤___HTMLTAG_146__HTMLTAGML_147變數變數

程式碼區塊_3


第 3 部分:瓶頸辨識

程式碼區塊_4


第 4 部分:叢集和應用程式調整

程式碼區塊_5

程式碼區塊_6


第 5 部分:基準報告

___HTMLTAG_165__HTMLTAG_166___指標____HTMLTAG_167__HTMLTAG_168___目標___HTMLTAG_169__HTMLTAG_170___實際___HTMLTAG_171__HTMLTAG_172___狀態___HTMLTAG_173174174___狀態_____ ___HTMLTAG_177__HTMLTAG_178___最大吞吐量____HTMLTAG_179__HTMLTAG_180___1000 請求/秒___HTMLTAG_181__HTMLTAG_182___1250 請求/秒__MLTAG透過___HTMLTAG_185__HTMLTAG_186___ ___HTMLTAG_187__HTMLTAG_188___P95 延遲___HTMLTAG_189__HTMLTAG_190__HTMLTAG_191__HTMLTAG_192___320ms___HTMLTAG_193__HTMLTAG_194_____196_HT ___HTMLTAG_197__HTMLTAG_198___P99 延遲___HTMLTAG_199__HTMLTAG_200__HTMLTAG_201__HTMLTAG_202___780ms___HTMLTAG_203__HTMLTAG_204___20_____HTML ___HTMLTAG_207__HTMLTAG_208___錯誤率___HTMLTAG_209__HTMLTAG_210__HTMLTAG_211__HTMLTAG_212___0.02%___HTMLTAG_213__HTMLTAG_214___✅1214___ML ___HTMLTAG_217__HTMLTAG_218___CPU 處於峰值___HTMLTAG_219__HTMLTAG_220__HTMLTAG_221__HTMLTAG_222___65%___HTMLTAG_223__HTMLTAG_224_____ ___HTMLTAG_227__HTMLTAG_228___記憶體處於峰值___HTMLTAG_229__HTMLTAG_230__HTMLTAG_231__HTMLTAG_232___72%___HTMLTAG_233__HTMLTAG_234✅✆____HTMLTAGMLTAG13234___

💡 重點

    ___HTMLTAG_244__HTMLTAG_245___k6:現代負載測試工具,可編寫腳本,Grafana 整合 ___HTMLTAG_248__HTMLTAG_249___測試類型:負荷、應力、尖峰、浸泡 — 每個都有不同的目的 ___HTMLTAG_252__HTMLTAG_253___瓶頸分析:逐層、追蹤引導 ___HTMLTAG_256__HTMLTAG_257___正確調整:VPA 建議 → 減少浪費 ___HTMLTAG_260__HTMLTAG_261___核心調整:增加連線限制、檔案描述子 ___HTMLTAG_264__HTMLTAG_265___報告:文檔基線,最佳化後比較

🎯 練習

練習 1:負荷測驗

  • 為 API 端點編寫 k6 腳本__HTMLTAG_276___
  • 運行負載測試、壓力測試、峰值測試__HTMLTAG_278___
  • 在測試期間監控 Grafana 儀表板__HTMLTAG_280___

練習 2:最佳化

  • 從測試結果中辨識前 3 個瓶頸
  • 應用最佳化(快取、調整大小、調整)
  • 重新測試並比較改進

📚 下一篇文章

在第49課:故障排除指南中,我們將學習K8s生產的系統故障排除。