歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> Linux內核和核心OS組件的測試與分析

Linux內核和核心OS組件的測試與分析

日期:2017/2/27 14:13:01   编辑:Linux內核

本文記錄了 Linux 內核和其他核心 OS 組件的測試結果與分析,從庫和設備驅動程序到文件系統和網絡,測試范圍無所不含,所有的測試都是在相當不利的條件下進行,並且經歷了很長的時間。

IBM Linux Technology Center (LTC) 成立於 1999 年 8 月,想讓 Linux 成功的共同夢想使其與 Linux 開發團體直接合作。它的 200 多名員工使之成為開放源代碼開發者的較大團隊組織之一。他們提供的代碼范圍包括,從補丁到結構化的內核改變,從文件系統和國際化工作到 GPL'd 驅動程序。他們還致力於追蹤 IBM 內部進行的 Linux 相關開發。

LTC 尤其感興趣的領域是 Linux 可擴展性、適用性、可靠性和系統管理 —— 所有的目的都是為了使 Linux 更適用於企業。他們為 Linux 團體所做出了諸多貢獻,包括使 Linux 可以工作於 S/390 主機,將 JFS 日志文件系統移植到 Linux,等等。

LTC 的另一項核心任務是,以測試商業項目的方式在實驗室條件下對 Linux 進行專業的測試。LTC 與 SGI、OSDL、Bull 和 Wipro Technologies 一道促成了 LTP Linux 測試項目(LTP)。下面是經過 LTP 套件在 Linux 內核上超長時間全面測試得到的結果。如您所猜,Linux 極好地承受了持續的壓力的考驗。

測試結果一瞥

下面的總結基於運行期間的測試和觀察結果:

* Linux 內核和其他核心 OS 組件 —— 包括庫、設備驅動程序、文件系統、網絡、IPC 和內存管理 —— 運轉穩定並完成了所有期望的運行期間,沒有任何嚴重的系統故障。

* 每次運行的成功率都很高(超過 95%),只有極少數的期望中的間歇故障,而這些故障是設計用來使資源過載的測試同時執行的結果。

* Linux 系統性能在長時間的運行中沒有下降。

* 在 SMP 系統上,Linux 內核正確地擴展以使用硬件資源(CPU、內存、硬盤)。

* Linux 系統可以很好地承受 CPU 持續滿負荷運轉(超過 99%)和極重內存壓力。

* Linux 系統正確地處理了過載的情況。

測試證明了 Linux 內核和其他核心組件在 30 天、60 天、90 天內是可靠的穩定的,可以為用戶提供一個長時間運行的健壯的、企業級的環境。

Linux 可靠性度量

目標

對 IBM Linux Technology Center 來說,Linux 可靠性工作的目標是,使用 LTP 測試套件對 Linux 操作系統進行超長時間的測試,重點在於 Linux 用戶環境相關的工作負荷(參閱 參考資料 以深入了解 LTP)。而並不是致力於證明缺陷。

測試環境概述

本文描述的是使用 LTP 測試套件進行的 30 天與 60 天的 Linux 可靠性度量測試的測試結果和分析。測試以 SuSE Linux Enterprise Server v8 (SLES 8) 作為測試內核,以 IBM pSeries 服務器作為測試硬件。使用的是一個特別設計的 LTP 壓力測試場景,在使用網絡與內存管理的同時並行地運行大范圍的內核組件,並在測試系統上生成高工作負荷壓力。Linux 內核、TCP、NFS 和 I/O 測試組件以重工作負荷壓力為目標。

測試

30 天

pSeries 30 天 LTP 壓力執行結果

* 機器:p650 LPAR

* CPU:(2) Power4- 1.2 GHz

* 內核:Linux 2.4.19-ull-ppc64-SMP (SLES 8 SP 1)

* LTP 版本:20030514

* 99.00% 平均 CPU 利用率(用戶:48.65%,系統:50.35%)

* 80.09% 平均內存利用率(8GB)

觀測結果:

* 在 p650 LPAR 上 SLES 8 PPC64 30 天壓力運轉成功完成。

* 測試工具是 LTPstress。測試用例以並行和串行方式執行。

* 內核、TCP、NFS 和 I/O 測試組件都以重工作負荷壓力為目標。

* 成功率:97.88%。

* 沒有嚴重的系統故障。

更多內容請看內核技術專題,或 ·Linux內核如何從2.4升級到2.6·Linux內核開發:使用 Git 管理源代碼·Linux內核: 修改TCP/IP調優參數·在ARMSYS上進行UClinux內核移植的總結·linux內核初始化及啟動之用戶模式開始·linux內核FAQ·linux內核初始化及啟動之start_kernel·使用kgdb調試linux內核及內核模塊·實戰linux內核編譯·ARMSYS上進行uClinux內核移植總結

60 天

60 天 LTP 壓力執行結果:pSeries

* 機器:B80

* CPU:(2) Power3- 375 MHz

* 內核:Linux 2.4.19-ull-ppc64-SMP (SLES 8 SP 1)

* LTP 版本:20030514

* 99.96% 平均 CPU 利用率(用戶:75.02%,系統:24.94%)

* 61.69% 平均內存利用率(8GB)

* 3.86% 平均交換分區利用率(1GB)

觀測結果:

* 在 pSeries B80 上 SLES 8 PPC64 60 天壓力運轉成功完成。

* 測試工具是 LTPstress。測試用例以並行和串行方式執行。

* 內核、TCP、NFS 和 I/O 測試組件以重工作負荷壓力為目標。

* 成功率:95.12%。

* 沒有嚴重的系統故障。

測試基礎設施

硬件與軟件環境

系統 處理器 內存 硬盤 交換分區 網絡

pSeries 650 (LPAR) Model 7038-6M2 2 - POWER4+(TM) 1.2GHz 8GB (8196MB) 36GB U320 IBM Ultrastar(有其他硬盤,但沒有使用) 1GB 以太網控制器:AMD PCnet32

pSeries 630 Model 7026-B80 2 - POWER3(TM)+ 375 MHz 8GB (7906MB) 16GB 1GB 以太網控制器:AMD PCnet32

pSeries 630 Model 7026-B80 和 pSeries 650 (LPAR) Model 7038-6M2 上的軟件環境是相同的。

組件 版本

Linux SuSE SLES 8 with Service Pack 1

內核 2.4.19-ul1-ppc64-SMP

LTP 20030514

方法學

系統的穩定性和可靠性通常以連續運轉時間和系統的可靠運行時間來度量。

最初運行的是一組為期 30 天的基線運轉,然後增加到 60 天和 90 天的 xSeries 和 pSeries 服務器上的 Linux 測試運轉。初始重點在於內核、網絡和 I/O 測試。

測試工具

Linux Test Project(即 LTP;參考資料 中有鏈接和更多信息)是 SGI、IBM、OSDL、Bull 和 Wipro Technologies 合作的項目,目的是為開放源代碼團體提供測試套件,以測試 Linux 的可靠性、健壯性和穩定性。Linux Test Project 是測試 Linux 內核和相關部件的工具的集合。目的是通過使內核測試工作自動化來幫助改進 Linux 內核。

當前,在 LTP 套件中有超過 2000 個測試用例,涵蓋了內核的大多數接口,比如系統調用、內存、IPC、I/O、文件系統和網絡。測試套件每月都會更新發布,可以運行於多種體系結構上。已知的 LTP 測試套件測試過的體系結構有 11 種,包括 i386、ia64、PowerPC、PowerPC 64、S/390、S/390x (64bit)、MIPS、mipsel、cris、AMD Opteron 和嵌入式體系結構。我們的可靠性測試中使用的 LTP 版本是 20030524,這是當時可以獲得的最新版本。

更多內容請看內核技術專題,或

測試策略

在基線運轉中有兩個特別的階段:一個 24 小時的“初始測試”,接下來是壓力可靠性運轉階段,或者說是“壓力測試”。

通過初始測試是開始測試的必要條件。 初始測試包括 LTP 測試套件在硬件和操作系統上 24 小時的成功運轉,這些硬件和操作系統將用於可靠性運轉。LTP 測試套件包附帶的驅動程序腳本 runalltest.sh 用於驗證內核。這個腳本串行地運行一組成包的測試,並報告全部結果。也可以選擇同時並行地運行幾個實例。默認地,這個腳本執行:

* 文件系統壓力測試。

* 硬盤 I/O 測試。

* 內存管理壓力測試。

* IPC 壓力測試。

* 調試器測試。

* 命令功能的驗證測試。

* 系統調用功能的驗證測試。

壓力測試可以驗證產品在系統高使用率時的健壯性。作為 runalltest.sh 的補充,特別設計了一個名為 ltpstress.sh 的測試場景,在使用網絡與內存管理的同時並行地運行大范圍的內核組件,並在測試系統上生成高壓力負荷。ltpstress.sh 也是 LTP 測試套件的一部分。這個腳本並行地運行相似的測試用例,串行地運行不同的測試用例,這樣做是為了避免由於同時訪問同一資源或者互相干擾而引起的間歇性故障。默認地,這個腳本執行:

* NFS 壓力測試。

* 內存管理壓力測試。

* 文件系統壓力測試。

* 數學 (浮點) 測試。

* 多線程壓力測試。

* 硬盤 I/O 測試。

* IPC (pipeio, semaphore) 測試。

* 系統調用功能的驗證測試。

* 網絡壓力測試。

系統監控

LTP 測試套件附帶的修改過的 top 工具用作系統監控工具。使用 top 可以實時地觀察處理器的行為。改進的 top 工具具有附加的功能,可以將 top 結果的快照保存到文件中,並給出結果文件的平均總結,包括 CPU、內存和交換空間利用率等信息。

在我們的測試中,每 10 秒鐘截取一次系統利用率(或者 top 輸出文件)的快照,並保存到結果文件。另外,每天或每周要處理系統利用率的快照和 LTP 測試輸出文件並得到數據分數,以確定系統在長時間運轉中性能是否下降。此功能由 cron 作業和腳本控制。

測試之前

所有選定的測試系統的硬件配置盡可能相同。去掉了額外的硬件以減少潛在的硬件故障。在映像安裝過程中選擇最低的安全選項。預留至少 2 GB 的硬盤空間以保存 top 數據文件和 LTP 日志文件。

注意,這是一個測試場景;現實生活中,最好建議用戶保持安全設置遠高於最低設置。

測試期間

在測試期間系統不要受到干擾。偶爾訪問一下系統以確認測試仍在進行是可以接受的。確認的手段包括使用 ps 命令、檢查 top 數據和檢查 LTP 日志數據。

測試之後

當測試結束後,系統監控工具 top 立刻停止。所有的 top 數據文件,包括每天或每周的快照和 LTP 日志文件,都被保存並處理,以便為分析提供數據。

結束語

本文論述的結果基於一個在實驗室環境下創建並測試的解決方案。這些結果可能並不是在所有的環境中都可以得到,而且在這種環境中實現可能還需要另外的步驟、配置和性能分析。

然而,由於大部分的 Linux 內核測試工作歷時都比較短,因此本系列測試為我們提供了長時間運轉的第一手數據和結果。本系列測試還提供了高工作負荷壓力下 Linux 內核組件以及 TCP、NFS 和其他測試組件的數據。測試證明,Linux 系統在長時間內是可靠的和穩定的,可以提供一個健壯的、企業級的環境。

參考資料

* 在 SourceForge 的 LTP Linux Test Project 主頁 和 LTP 項目主頁 可以找到有用的信息和鏈接。

* 項目的文檔包括 LTP HowTo 和 LTP man pages(還有其他文檔)。

* LTP 網頁還提供了關於其他 Linux 測試工具 的摘要和鏈接。

* 訪問 IBM Linux Technology Center 主頁 以閱讀他們最新的新聞和聲明。

* IBM Linux Technology Center 項目主頁 列出了工作組當前正在進行的項目。

* “Inside IBM's Linux Technology Center”(ITworld.com)和“Inside IBM: Dan Frye and the Linux Technology Center”(Consulting Times) 兩篇文章更深入地介紹了 IBM LTC 的背景。

* IBM developerWorks 文章“Behind the scenes at the IBM Linux Technology Center” 也對 IBM Linux Technology Center 進行了描述。

* 在 IBM developerWorks Linux 專區 可以找到更多的關於 Linux 的開發資料。

更多內容請看內核技術專題,或




Copyright © Linux教程網 All Rights Reserved