對 Linux 核心進行壓力測試(轉)

BSDLite發表於2007-08-12
對 Linux 核心進行壓力測試(轉)[@more@]自動軟體測試讓您可以在一段時間內執行相同的測試,從而確保您所比較的內容具備真正的可比性。在本文中, Linux Test Project 團隊的成員們分享了他們對 Linux? 核心進行壓力所使用的測試的方法、原理以及指令碼和工具。

在對 Linux 核心版本穩定性的測試中,需要明確地宣告並證明為什麼版本是穩定的或者是不穩定的。 然而還沒有被證明和證實當前現有的系統範圍內的壓力測試可以測試 Linux 核心整體上的穩定性。 本文給出了一個建立系統範圍內 Linux 壓力測試並證明其結果正確性的方法。不同的 Linux 開發者、 使用者和發行版本會使用他們自己的方法來測試核心的穩定性。不過,關於他們決定執行哪些測試、覆蓋的程式碼、 達到的壓力級別等的基礎資訊都沒有釋出,這就大大降低了結果的價值。

使用實驗室的機器以及來自 Linux Test Project 測試套件的測試,我們基於系統資源的利用率統計開發了一個 測試的組合,為系統提供足夠的壓力。我們對這個組合測試進行了分析,以確定 Linux 核心的哪些部分在測試 執行中得到了使用。然後,我們修改了組合測試,在保持期望的高強度系統壓力的同時提高程式碼覆蓋率的百分比。 最終得到的壓力測試涵蓋了 Linux 核心的足夠多部分,有助於穩定性宣告,並且有系統使用情況和核心程式碼覆蓋情況的資料來支援它。

這一組合測試方法的四個步驟是:測試選擇、系統資源利用率評價、核心程式碼覆蓋分析以及最終的壓力測試評價。

選擇測試
測試選擇包括選擇達成兩方面目的的測試:
- 測試應該可以得到 CPU(s)、記憶體、I/O 和網路等主要核心區域的高水平的資源利用率。
- 測試應該充分地覆蓋核心程式碼,以幫助支援自其結果中生成的穩定性宣告。

只要有可能,都要使用自動化的或者易於修改的測試,以支援自動操作。自動操作可以使得測試 更快而且可以重複進行,並幫助降低人為錯誤的風險。選擇合適的測試時需要考慮的另一個方面是, 使用可以自由釋出結果的應用程式。最好是選擇堅決擁護開放原始碼方法 和/或 GPL 的測試和測試套件,以助於確保 釋出過程的簡便。

評價系統資源利用率
所選擇的測試的組合必須給系統的資源帶來足夠的壓力。Linux 核心的四個主要方面可以影響系統的 響應和執行時間:
- CPU:用於在機器的 CPU(s)上處理資料的時間。
- Memory:用於自真實儲存器中讀寫資料的時間。
- I/O:用於自磁碟儲存器讀寫資料的時間。
- Networking:用於自網路讀寫資料的時間。

測試設計者應該使用下面這兩個著名的且廣為應用的開放原始碼 Linux 資源監控工具來評價資源利用率水平。 (請參閱本文稍後的 參考資料 以獲得下載這些工具的連結。)
- top:由 Albert D. Cahalan 維護著的一個開放原始碼工具, 包含於大部分 Linux 發行版本中,可用於當前的 2.4 和 2.6 核心。
- sar:另一個開放原始碼工具;它由 Sebastien Godard 維護。 這個工具也包含於大部分 Linux 發行版本中,可用於當前的 2.4 和 2.6 核心。

方法中的系統資源利用率評價階段通常需要多次嘗試才能得到合適的測試組合,並得到期望水平的利用率。 當確定測試組合時,過度利用總是一個至關重要的問題。例如,如果選擇的組合過於受 I/O 所限,可能會 導致 CPU 的測試結果不好,反之亦然。方法的這一部分主要是大量的試驗和出錯,直到所有資源達到期望 水平。

top 工具可用於迅速確定每個測試影響哪個資源(CPU、記憶體或者 I/O),並實時地顯示出它們使用了多少資源。 sar 工具用於收集一段時間內的網路利用率統計資料,並將所有利用率資料的快照記錄到一個檔案。

當選定一個組合後,測試必須長時間執行以準確評價資源的利用率。測試執行的時間長短取決於每個測試的長度。 假如多個測試同時執行,則時間必須足夠長以使得這些測試中最長的那個可以完成。在這個評價過程中,sar 工 具也應該在執行。在評價執行的結論中,您應該收集並評價所有四種資源的利用率水平。

下面的例子顯示了 sar 輸出的 CPU、記憶體和網路利用率:
清單 1. sar 的輸出示例
QUOTE:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617542/viewspace-949845/,如需轉載,請註明出處,否則將追究法律責任。

對 Linux 核心進行壓力測試(轉)
請登入後發表評論 登入
全部評論

相關文章