2 找到瓶頸 水平測試和垂直測試

2021-04-27 14:46:01 字數 958 閱讀 6639

在某些時候,你可能注定需要從mysql獲得更高的效能。但是你應該通過改善什麼來提高效能呢?改進乙個特定的查詢,改進你的資料庫表結構,還是改進你的硬體?知道這些的唯一方法是測量你的系統正在做什麼,並且得到它在各種情況下的效能。這也是為什麼我們把這章放在本書開始的原因。

最好的策略是找到並加強你的應用中元件鏈裡最脆弱的一環。這在你不知道目前或者未來是什麼在影響效能的情況下尤其有效。

水平測試(benchmarking)和垂直測試(profiling)是兩個發現瓶頸的最基本實踐方法。這兩者互相關聯,但是又不盡相同。水平測試測量的是你系統的整體效能。這可以幫助你明確乙個系統的能力,幫助你明確哪些改變會對系統效能造成影響而哪些不會,幫助你了解在不同的資料下你的系統的表現會怎麼樣。

與水平測試不同,垂直測試幫助你找到你的系統在**花費的時間最多或者在**耗費的資源最多。換句話說,水平測試解決「這個系統的效能有多強?」的問題,而垂直測試解決「這個系統的效能為什麼這麼強?」的問題。

這一章分成兩個部分,乙個是水平測試,另外乙個是垂直測試。開始我們會討論一下進行水平測試的原因和測試思想,然後介紹一下具體的水平測試技巧。我們將會給讀者展示如何計畫和設計乙個水平測試,如何得到精確的結果,如果執行水平測試以及如何分析結果。第一部分的最後我們將會向讀者展示一系列的水平測試工具以及如何使用其中幾種的例子。

本章的其餘部分懂不了如何對應用和mysql進行垂直測試。我們將會展示我們在生產環境裡使用的現實的垂直測試**來幫助使用者分析應用的效能。我們也將會向讀者展示如何記錄mysql查詢的日誌,分析這些日誌,以及如何使用mysql的狀態計數器以及其他的一些工具來分析mysql以及你的查詢語句到底在做些什麼。

注:這裡將benchmark翻譯為水平測試,而將profile翻譯為垂直測試。我在網上找了好久,也請教了一些人,但是沒有乙個對benchmark和profile比較官方的翻譯,因此根據上面對這兩個的定義,我覺得水平測試和垂直測試還是比較能表達這兩者的實際意思的,因此在後文中就使用「水平測試」和「垂直測試」這兩種叫法了。

軟體測試 2 開發模型和測試模型

軟體的生命週期 軟體的生命週期是指從軟體產品的設想開始到軟體不再使用而結束的時間。一般分為6個階段 需求分析 計畫 設計 編碼 測試 執行維護。瀑布模型 瀑布模型是所有其他模型的基礎框架,每個階段只執行一次,因此是線性順序進行的軟體開發模式。優點 1.強調開發的階段性 2.強調早期計畫及需求調查 3...

Jmeter 效能測試 2 效能測試的流程和術語

1 系統基礎功能驗證 一般情況下,只有在系統基礎功能測試驗證完成 系統趨於穩定的情況下,才會進行效能測試,否則效能測試是無意義的。2 測試團隊組建 根據該項目的具體情況,組建乙個幾人的效能測試team,其中dba是必不可少的,然後需要一至幾名系統開發人員 對應前端 後台等 還有效能測試設計和分析人員...

軟體測試系列之(2) 效能測試過程和方法

執行效能是軟體產品的重要特性,是產品是否能夠滿足使用者使用要求的重要指標,直接影響著軟體產品的應用效果。因而效能測試是軟體產品測試的重要組成部分。通常,效能測試的主要過程及各階段的主要任務 如下圖所示 依據效能測試目的的不同,效能測試可分為三種類別 單項功能的執行效能 單項功能中每一步驟的執行效能 ...