2012-02-18 53 views

回答

12

如果將它們全部編譯,您可以在引導時或每個設備上選擇使用哪個調度程序。無需在編譯時選擇,除非您的目標是嵌入式設備,其中每個字節都包含在內。請參閱Documentation/block/switching-sched.txt以瞭解在引導時切換每個設備或系統範圍的詳細信息。

CFQ調度程序允許您通過ionice(1)工具或ioprio_set(2)系統調用設置優先級。這允許優先考慮某些進程或強制他人僅當系統的塊設備相對空閒時才執行其IO。隊列由segregating the IO requests from processes into queues實現,並處理來自每個隊列的類似於CPU調度的請求。有關配置的詳細信息,請參閱Documentation/block/cfq-iosched.txt

截止日程安排程序通過對比來查看所有進程的所有寫入一次;它按照扇區號對寫入進行排序,並以線性方式將它們全部寫入。截止日期意味着它試圖在截止日期截止前寫入每個塊,但在這些截止日期之內,可以自由地重新排列塊。有關配置的詳細信息可在Documentation/block/deadline-iosched.txt中找到。

3

實際上可能很少。

在我的測試中,我發現一般來說,如果你有一個聰明的RAID控制器,NOOP會好一點。其他人也報告了類似的結果,但您的工作量可能不同。

但是,您可以在運行時選擇它們(無需重新啓動),所以不要在編譯時擔心它。

我的理解是,「聰明的」調度程序(CFQ和截止日期)只對沒有RAID控制器的傳統「旋轉磁盤」設備有幫助。

+0

No-op也適用於SSD – r004 2014-06-28 07:13:15