top 工具可用于迅速確定每個測試影響哪個資源(CPU、內存或者 I/O),并實時地顯示出它們使用了多少資源。 sar 工具用于收集一段時間內的網絡利用率統計數據,并將所有利用率數據的快照記錄到一個文件。
當選定一個組合后,測試必須長時間運行以準確評價資源的利用率。測試運行的時間長短取決于每個測試的長度。假如多個測試同時運行,則時間必須足夠長以使得這些測試中最長的那個可以完成。在這個評價過程中,sar 工具也應該在運行。在評價運行的結論中,您應該收集并評價所有四種資源的利用率水平。
下面的例子顯示了 sar 輸出的 CPU、內存和網絡利用率:
清單 1. sar 的輸出示例10:48:27 CPU %user %nice %system %iowait %idle 10:48:28 all 0.00 0.00 0.00 0.00 100.00 10:48:29 all 3.00 0.00 1.00 0.00 96.00 10:48:30 all 100.00 0.00 0.00 0.00 0.00 10:48:31 all 100.00 0.00 0.00 0.00 0.00 02:27:31 kbmemfree kbmemused %memused kbswpfree kbswpused %swpused 02:29:31 200948 53228 20.94 530104 0 0.00 02:31:31 199136 55040 21.65 530104 0 0.00 02:33:31 198824 55352 21.78 530104 0 0.00 02:35:31 199200 54976 21.63 530104 0 0.00 02:27:31 IFACE rxpck/s txpck/s rxbyt/s txbyt/s 02:29:31 eth0 738.79 741.66 76025.55 136941.85 02:31:31 eth0 743.30 744.97 76038.82 136907.77 02:33:31 eth0 744.80 745.02 76135.53 136901.38 02:35:31 eth0 742.35 744.34 75947.45 136864.77
分析內核代碼覆蓋率
獲得足夠的內核覆蓋率是系統壓力測試的另一個職責。盡管所選的測試組合充分地利用了四種主要資源,它也有可能只是執行了內核的一小部分。因而,您應該對覆蓋率進行分析以確保組合可以成為一個系統壓力測試,而不是一個系統負載生成器。當前,有兩個開放源代碼工具可以幫助進行 Linux 內核的代碼覆蓋率分析:
gcov 模塊加載以后,所有運行于系統壓力測試組合中的測試都必須執行。盡管原來的系統壓力測試可以同時執行,也應該同時執行,但是這次運行應該是循環進行的。每個測試都應該運行一次直到結束,一個接一個地運行,不能重復運行任何測試。單個地、循環地運行,是為了減少在同時運行多個系統壓力測試時,內核嘗試去平衡它們的負載而導致的不可預知的和無目的的內核代碼執行。您應該在最后一個測試運行結束后再進行 gcov 分析。由于最終是要格式化數據以進行分析,所以運行 lcov 工具并缷載 gcov 模塊。
lcov 工具會生成一棵完整的 HTML 樹,其中包含有內核中代碼的每一行以及關于每一行執行了多少次的數據(如果有的話)。這個工具會量化覆蓋率數據并生成關于內核中每一部分和文件覆蓋率的百分比數字。下面的例子展示了一個示例性的代碼覆蓋率輸出:
圖 1. gcov 輸出示例
lcov 維護者定義了“足夠的覆蓋”(綠色的),因而這個 lcov 示例僅僅是一種評價。不過,所包括的原始數據讓任何瀏覽者都可以做出他或她自己的判斷。在瀏覽了覆蓋率分析后,測試創建者現在可以修改測試的組合,以改變 和/或 增加所覆蓋的代碼的數量。
文章來源于領測軟件測試網 http://www.kjueaiud.com/