品牌加盟網
品牌加盟網

調整Linux I/O調度器優化系統性能

I 

Linux I/O 調度器是Linux內核中的一個組成部分,用戶可以通過調整這個調度器來優化系統性能。本文首先介紹Linux I/O 調度器的結構,然后介紹如何根據不同的存儲器來設置Linux I/O 調度器從而達到優化系統性能。

圖1 Linux I/O調度器介于通用塊層和塊設備驅動程序之間

當Linux內核組件要讀寫一些數據時,并不是請求一發出,內核便立即執行該請求,而是將其推遲執行。當傳輸一個新數據塊時,內核需要檢查它能否通過。Linux IO調度程序是介于通用塊層和塊設備驅動程序之間,所以它接收來自通用塊層的請求,試圖合并請求,并找到最合適的請求下發到塊設備驅動程序中。之后塊設備驅動程序會調用一個函數來響應這個請求。

Linux整體I/O體系可以分為七層,它們分別是:

VFS虛擬文件系統:內核要跟多種文件系統打交道,內核抽象了這VFS,專門用來適配各種文件系統,并對外提供統一操作接口。 磁盤緩存:磁盤緩存是一種將磁盤上的一些數據保留著RAM中的軟件機制,這使得對這部分數據的訪問可以得到更快的響應。磁盤緩存在Linux中有三種類型:Dentry cache ,Page cache , Buffer cache。 映射層:內核從塊設備上讀取數據,這樣內核就必須確定數據在物理設備上的位置,這由映射層(Mapping Layer)來完成。 通用塊層:由于絕大多數情況的I/O操作是跟塊設備打交道,所以Linux在此提供了一個類似vfs層的塊設備操作抽象層。下層對接各種不同屬性的塊設備,對上提供統一的Block IO請求標準。 I/O調度層:大多數的塊設備都是磁盤設備,所以有必要根據這類設備的特點以及應用特點來設置一些不同的調度器。 塊設備驅動:塊設備驅動對外提供高級的設備操作接口。 物理硬盤:這層就是具體的物理設備。

在2.4 內核中它是第一種I/O調度器。它的主要作用是為每個設備維護一個查詢請求,當內核收到一個新請求時,如果能合并就合并。如果不能合并,就會嘗試排序。如果既不能合并,也沒有合適的位置插入,就放到請求隊列的最后。

Anticipatory的中文含義是\

  • 評論文章
  • 加盟咨詢
對此頁面內容評分及收藏
評分:
微博:
相關資訊
最新資訊
圖文資訊