改善Linux核心和可伸縮性適應企業環境(轉)
改善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 伺服器。
目前,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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Node.js的可伸縮性Node.js
- Twitter如何使用Redis提高可伸縮性Redis
- 兩欄佈局,左側可伸縮,右側寬度自適應
- 大型網站的可伸縮性架構如何設計?網站架構
- 可伸縮聚類演算法綜述(可伸縮聚類演算法開篇)聚類演算法
- 關於記憶體快取的可伸縮性問題記憶體快取
- 簡析Uber的可伸縮監控:uMonitor和Neris
- 微服務-分解應用程式從而實現更好的部署特性及可伸縮性微服務
- 創業公司工程師應該掌握的可伸縮Web開發技術創業工程師Web
- 推行標準化應用,改善業務環境
- 可伸縮性和重/輕量,誰是實用系統的架構主選?架構
- 彈性佈局(伸縮佈局)
- GNOME幫助Linux應用於商業桌面環境(轉)Linux
- MicroStrategy使用者伸縮性基準測試(轉貼)ROS
- 網友最喜歡的十大軟體架構和可伸縮性設計架構
- 企業學習環境塑造法(轉載)
- Hadoop自由實現伸縮節點詳細說明-Hadoop商業環境實戰Hadoop
- 改善流程:企業短期治理的良方(轉)
- 伸縮架構原理也適用於大模型架構大模型
- CSS 可伸縮圓角導航選單CSS
- [.net 物件導向程式設計進階] (19) 非同步(Asynchronous) 使用非同步建立快速響應和可伸縮性的應用程式物件程式設計非同步
- Linux程式應用開發環境和工具經驗談(轉)Linux開發環境
- SQL Server 2008可伸縮性資源調控器簡介SQLServer
- RDS for MySQL Serverless公測上線:彈性伸縮,最高可降成本超80%MySqlServer
- CSS-彈性佈局3-伸縮屬性CSS
- 如何使用 Kubernetes 實現應用程式的彈性伸縮
- Knative Autoscaler 自定義彈性伸縮
- 網站架構的伸縮性設計網站架構
- JVM效能優化,提高Java的伸縮性JVM優化Java
- 中小企業Linux應用之惑(轉)Linux
- Linux寶塔皮膚安裝Windows環境搭建企業LinuxWindows
- jQuery可伸縮搜尋框程式碼例項jQuery
- Blitz4j - 可伸縮的日誌框架框架
- IBM Rational CM Server 在 WAN 效能、可靠性以及可伸縮性方面的功能改進IBMServer
- 環境變數{Linux環境(也稱為Shell環境)}(轉)變數Linux
- 網易智慧企業 Node.js 實踐(3)| 灰度環境和應用監控Node.js
- 《Storm企業級應用:實戰、運維和調優》——2.1 環境準備ORM運維
- 可伸縮的微服務告警系統設計指南微服務