本文記錄了 Linux 核心和其他核心 OS 元件的測試結果與分析,從庫和裝置驅動程式到檔案系統和網絡,測試範圍無所不含,所有的測試都是在相當不利的條件下進行,并且經曆了很長的時間。IBM Linux Technology Center 剛剛結束了這次長達三個多月的全面測試,并将他們的 LTP (Linux Test Project) 測試結果與 developerWorks 的讀者共享。
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 極好地承受了持續的壓力的考驗。

<a><b>測試結果一瞥</b></a>
下面的總結基于運作期間的測試和觀察結果:
Linux 核心和其他核心 OS 元件 —— 包括庫、裝置驅動程式、檔案系統、網絡、IPC 和記憶體管理 —— 運轉穩定并完成了所有期望的運作期間,沒有任何嚴重的系統故障。
每次運作的成功率都很高(超過 95%),隻有極少數的期望中的間歇故障,而這些故障是設計用來使資源過載的測試同時執行的結果。
Linux 系統性能在長時間的運作中沒有下降。
在 SMP 系統上,Linux 核心正确地擴充以使用硬體資源(CPU、記憶體、硬碟)。
Linux 系統可以很好地承受 CPU 持續滿負荷運轉(超過 99%)和極重記憶體壓力。
Linux 系統正确地處理了過載的情況。
測試證明了 Linux 核心和其他核心元件在 30 天、60 天、90 天内是可靠的穩定的,可以為使用者提供一個長時間運作的健壯的、企業級的環境。
<a>Linux 可靠性度量</a>
<a>目标</a>
<a>測試環境概述</a>
本文描述的是使用 LTP 測試套件進行的 30 天與 60 天的 Linux 可靠性度量測試的測試結果和分析。測試以 SuSE Linux Enterprise Server v8 (SLES 8) 作為測試核心,以 IBM pSeries 伺服器作為測試硬體。使用的是一個特别設計的 LTP 壓力測試場景,在使用網絡與記憶體管理的同時并行地運作大範圍的核心元件,并在測試系統上生成高工作負荷壓力。Linux 核心、TCP、NFS 和 I/O 測試元件以重工作負荷壓力為目标。


<a href="http://www.ibm.com/developerworks/cn/linux/l-rel/#main"><b>回頁首</b></a>
<a>測試</a>
<a>30 天</a>
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)
<b>觀測結果:</b>
在 p650 LPAR 上 SLES 8 PPC64 30 天壓力運轉成功完成。
測試工具是 LTPstress。測試用例以并行和串行方式執行。
核心、TCP、NFS 和 I/O 測試元件都以重工作負荷壓力為目标。
成功率:97.88%。
沒有嚴重的系統故障。
<a><b>圖 1. 30 天 LTP 壓力執行結果</b></a>
<a>60 天</a>
60 天 LTP 壓力執行結果:pSeries
機器:B80
CPU:(2) Power3- 375 MHz
99.96% 平均 CPU 使用率(使用者:75.02%,系統:24.94%)
61.69% 平均記憶體使用率(8GB)
3.86% 平均交換分區使用率(1GB)
在 pSeries B80 上 SLES 8 PPC64 60 天壓力運轉成功完成。
核心、TCP、NFS 和 I/O 測試元件以重工作負荷壓力為目标。
成功率:95.12%。
<a><b>圖 2. 60 天 LTP 壓力執行結果</b></a>


<a>測試基礎設施</a>
<a>硬體與軟體環境</a>
表 1 列出了硬體環境。
<a>表 1. 硬體環境</a>
系統
<b>處理器</b>
<b>記憶體</b>
<b>硬碟 </b>
<b>交換分區 </b>
<b>網絡</b>
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
pSeries 630 Model 7026-B80 和 pSeries 650 (LPAR) Model 7038-6M2 上的軟體環境是相同的。表 2 列出了軟體環境。
<a>表 2. 軟體環境</a>
元件
<b>版本</b>
Linux
SuSE SLES 8 with Service Pack 1
核心
2.4.19-ul1-ppc64-SMP
LTP
20030514


<a>方法學</a>
系統的穩定性和可靠性通常以連續運轉時間和系統的可靠運作時間來度量。
最初運作的是一組為期 30 天的基線運轉,然後增加到 60 天和 90 天的 xSeries 和 pSeries 伺服器上的 Linux 測試運轉。初始重點在于核心、網絡和 I/O 測試。


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


<a>測試政策</a>
在基線運轉中有兩個特别的階段:一個 24 小時的“初始測試”,接下來是壓力可靠性運轉階段,或者說是“壓力測試”。
通過初始測試是開始測試的必要條件。初始測試包括 LTP 測試套件在硬體和作業系統上 24 小時的成功運轉,這些硬體和作業系統将用于可靠性運轉。LTP 測試套件包附帶的驅動程式腳本 runalltest.sh 用于驗證核心。這個腳本串行地運作一組成包的測試,并報告全部結果。也可以選擇同時并行地運作幾個執行個體。預設地,這個腳本執行:
檔案系統壓力測試。
硬碟 I/O 測試。
記憶體管理壓力測試。
IPC 壓力測試。
調試器測試。
指令功能的驗證測試。
系統調用功能的驗證測試。
壓力測試可以驗證産品在系統高使用率時的健壯性。作為 runalltest.sh 的補充,特别設計了一個名為 ltpstress.sh 的測試場景,在使用網絡與記憶體管理的同時并行地運作大範圍的核心元件,并在測試系統上生成高壓力負荷。ltpstress.sh 也是 LTP 測試套件的一部分。這個腳本并行地運作相似的測試用例,串行地運作不同的測試用例,這樣做是為了避免由于同時通路同一資源或者互相幹擾而引起的間歇性故障。預設地,這個腳本執行:
NFS 壓力測試。
數學 (浮點) 測試。
多線程壓力測試。
IPC (pipeio, semaphore) 測試。
網絡壓力測試。


<a>系統監控</a>
LTP 測試套件附帶的修改過的 <code>top</code> 工具用作系統監控工具。使用 <code>top</code> 可以實時地觀察處理器的行為。改進的 <code>top</code> 工具具有附加的功能,可以将 <code>top</code> 結果的快照儲存到檔案中,并給出結果檔案的平均總結,包括 CPU、記憶體和交換空間使用率等資訊。
在我們的測試中,每 10 秒鐘截取一次系統使用率(或者 top 輸出檔案)的快照,并儲存到結果檔案。另外,每天或每周要處理系統使用率的快照和 LTP 測試輸出檔案并得到資料分數,以确定系統在長時間運轉中性能是否下降。此功能由 <code>cron</code> 作業和腳本控制。
<b>測試之前</b>
所有標明的測試系統的硬體配置盡可能相同。去掉了額外的硬體以減少潛在的硬體故障。在映像安裝過程中選擇最低的安全選項。預留至少 2 GB 的硬碟空間以儲存 <code>top</code> 資料檔案和 LTP 日志檔案。
注意,這是一個測試場景;現實生活中,最好建議使用者保持安全設定遠高于最低設定。
<b>測試期間</b>
在測試期間系統不要受到幹擾。偶爾通路一下系統以确認測試仍在進行是可以接受的。确認的手段包括使用 <code>ps</code> 指令、檢查 <code>top</code> 資料和檢查 LTP 日志資料。
<b>測試之後</b>
當測試結束後,系統監控工具 <code>top</code> 立刻停止。所有的 <code>top</code> 資料檔案,包括每天或每周的快照和 LTP 日志檔案,都被儲存并處理,以便為分析提供資料。


<a>結束語</a>
本文論述的結果基于一個在實驗室環境下建立并測試的解決方案。這些結果可能并不是在所有的環境中都可以得到,而且在這種環境中實作可能還需要另外的步驟、配置和性能分析。
然而,由于大部分的 Linux 核心測試工作曆時都比較短,是以本系列測試為我們提供了長時間運轉的第一手資料和結果。本系列測試還提供了高工作負荷壓力下 Linux 核心元件以及 TCP、NFS 和其他測試元件的資料。測試證明,Linux 系統在長時間内是可靠的和穩定的,可以提供一個健壯的、企業級的環境。
<a>參考資料</a>
<a>作者簡介</a>





