改善Linux核心和可伸縮性適應企業環境(轉)

BSDLite發表於2007-08-16
改善Linux核心和可伸縮性適應企業環境(轉)[@more@]  改善 Linux 效能的第一步是對其進行量化。但如何精確地對 Linux 的效能或與它相當的系統效能進行量化呢?在本文中,IBM Linux 技術中心的成員描述了他們在去年底對 Linux 2.4 和 2.5 核心所做的幾個基準程式測試,就這些專家經驗,以饗讀者。

  目前,Linux 作業系統是最成功的開放原始碼專案之一。Linux 作為 Web 伺服器作業系統,展示了其高可靠性,在 Web 伺服器市場,它佔據了很大的份額。這些 Web 伺服器通常是低端及位於中間檔次的系統,帶有最多可達 4 路的對稱多處理器(SMP);而企業級系統有更復雜的需求,譬如需要更多的處理器個數和 I/O 配置以及大的記憶體和頻寬。為了使 Linux 為進入企業環境而作好準備,以及能夠作為商業性應用進入 SMP 市場,與商業 UNIX 系統相比,它的 SMP 可伸縮性、磁碟和網路 I/O 效能、排程程式和虛擬記憶體管理器必須得到改善。

  Linux 可伸縮性研究計劃(Linux Scalability Effort,LSE)(請參閱參考資料中的連結)是一個開放原始碼專案,解決了用於企業級機器的 Linux 核心問題,這些機器的可伸縮性達到 8 路或更高。

  IBM Linux 技術中心(Linux Technology Center,LTC)的 Linux 效能團隊(請參閱參考資料的相關連結)積極地參與了 LSE 活動。此外,他們的目標是,透過改進 Linux 核心效能(尤其針對 SMP 可伸縮性)而使 Linux 更優秀。

  本文描述了在著重平臺無關性問題的同時,該團隊在測量、分析與改進 Linux 核心效能和可伸縮性上所採用的策略和方法。該團隊使用了一套基準測試程式來完成此項任務。這些基準測試程式考慮到了各種工作負載,其中包括 Web 服務、資料庫和檔案服務。此外,我們還將向您展示每個基準測試程式所著重的各個核心元件(例如,磁碟 I/O 子系統)。

  分析方法

  這裡我們討論用來量化針對 SMP 可伸縮性的 Linux 效能的分析方法。如果您願意,可以直接跳到基準測試程式結果這一節。

  我們用來改進 Linux 效能和可伸縮性的策略包括:執行幾個業界接受的和元件級的基準測試程式,選擇合適的硬體和軟體,開發基準測試程式執行規則,設定效能和可伸縮性目標,以及測量、分析和改進效能和可伸縮性。在這一節中將詳細講述這些過程。

  效能被定義為單處理器(UP)或 SMP 上的原始吞吐量。我們將 SMP 可伸縮性(CPU)和資源可伸縮性(例如,網路連線數目)區別開來。

  硬體和軟體

  這項工作的大部分都使用 IA-32(即 x86)體系結構,從 1 個到 8 個處理器。我們還研究了與為將來之用的非一致記憶體訪問(NUMA)IA-32 和 NUMA IA-64 體系結構相關的問題。硬體的選擇通常是根據基準測試程式和相關工作負載的選擇。軟體的選擇要與 IBM 的 Linux 中介軟體策略和/或開放原始碼中介軟體相結合。例如:

  資料庫

  我們採用查詢資料庫基準測試程式,而在硬體上,採用帶大磁碟配置的 8 路 SMP 系統。資料庫軟體採用 IBM DB2 for Linux,SCSI 控制器是 IBM ServeRAID 4H。這個資料庫是針對 8 路 SMP。

  SMB 檔案服務

  基準測試程式是 NetBench,硬體是 4 路 SMP 系統,驅動 SMP 伺服器的客戶機可多達 48 個。中介軟體是 Samba(開放原始碼)。SMB 檔案服務是針對 4 路 SMP。

  Web 服務

  基準測試程式是 SPECweb99,硬體是 8 路 SMP,並帶有大記憶體配置,客戶機可達 32 個。這個基準測試僅用於研究目的,不做它用(有關這方面的更多細節,請參閱基準測試程式這一節)。Web 伺服器是 Apache,它是 IBM HTTP 伺服器的基礎。我們選擇 8 路 SMP 是為了研究可伸縮性,而選擇 Apache 是因為它支援對下一代 posix 執行緒(NGPT)的測量和分析(請參閱參考資料)。此外,它是開放原始碼,而且是最流行的 Web 伺服器。

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

相關文章