国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

內核研發者Ted Ts'o加盟Linux Foundation

2024-08-27 23:57:34
字體:
來源:轉載
供稿:網友

在對 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. 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 

清單 1.sar 的輸出示例

分析內核代碼覆蓋率

獲得足夠的內核覆蓋率是系統壓力測試的另一個職責。盡管所選的測試組合充分地利用了四種主要資源,它 也有可能只是執行了內核的一小部分。因而,您應該對覆蓋率進行分析以確保組合可以成為一個系統壓力 測試,而不是一個系統負載生成器。當前,有兩個開放源代碼工具可以幫助進行 Linux 內核的代碼覆蓋率分析:

gcov:一個由 Linux Test Project 維護的開放源代碼工具。 這個工具分析內核代碼的覆蓋率,并報告哪些行、函數和分支被覆蓋以及它們被訪問了多少次。

lcov:另一個由 IBM 開發,由 Linux Test Project 維護的開放源代碼工具。 這個工具由一組構建于基于文本的 gcov 輸出之上的 Perl 腳本構成,以實現基于 HTML 的輸出。 輸出包括覆蓋率百分比、圖表以及概述頁,可以快速瀏覽覆蓋率數據。您可以自 Linux Test Project(LTP)主頁 找到這兩個工具(參閱 參考資料 以獲得鏈接)。

gcov 模塊加載以后,所有運行于系統壓力測試組合中的測試都必須執行,盡管原來的系統壓力測試可以同時執行,也應該同時執行,但是這次運行應該是循環進行的。每個測試都應該運行一次直到結束,一個接一個地運行,不能重復運行任何測試。單個地、循環地運行,是為了減少在同時運行多個系統壓力測試時,內核嘗試 去平衡它們的負載而導致的不可預知的和無目的的內核代碼執行。您應該在最后一個測試運行結束后再進行 gcov 分析,由于最終是要格式化數據以進行分析,所以運行 lcov 工具并加載 gcov 模塊。

lcov 工具會生成一棵完整的 HTML 樹,其中包含有內核中代碼的每一行以及關于每一行執行了多少次的數據(如果有的話),這個工具會量化覆蓋率數據并生成關于內核中每一部分和 文件覆蓋率的百分比數字。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 吉林市| 平南县| 辽阳县| 芜湖县| 大埔区| 丹寨县| 合阳县| 新乡市| 和田市| 呼伦贝尔市| 乌拉特中旗| 濉溪县| 句容市| 杭州市| 关岭| 儋州市| 郴州市| 九江县| 宁晋县| 织金县| 满城县| 陈巴尔虎旗| 阿克陶县| 黑水县| 鸡西市| 邵阳县| 改则县| 曲周县| 集贤县| 若羌县| 平山县| 莫力| 华宁县| 南雄市| 湛江市| 阿拉善盟| 隆林| 高邮市| 南平市| 兴宁市| 荆州市|