我正在重新編譯我的內核,我想選擇一個I/O調度器。這些有什麼區別?CFQ,截止日期和NOOP有什麼區別?
7
A
回答
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控制器的傳統「旋轉磁盤」設備有幫助。
相關問題
- 1. append和addObject +有什麼區別+比較兩個日期
- 2. c#中日期和日期時間數據類型有什麼區別
- 3. 有什麼區別`和$(Bash中有什麼區別?
- 4. datepicker截止日期
- 5. 有什麼區別? :和||
- 6. &&和||有什麼區別?
- 7. 「/」和「/ *」有什麼區別?
- 8. 有什麼區別:。!和:r!?
- 9. ==和===有什麼區別?
- 10. Appender和〜有什麼區別?
- 11. $ @和$ *有什麼區別?
- 12. is和=有什麼區別?
- 13. #.00和#。##有什麼區別?
- 14. `==`和`is`有什麼區別?
- 15. '=='和'==='有什麼區別?
- 16. /和/#/有什麼區別?
- 17. | 0和~~有什麼區別?
- 18. `&`和`ref`有什麼區別?
- 19. ==和===有什麼區別?
- 20. ==和===有什麼區別?
- 21. `{}`和`[]`有什麼區別?
- 22. JavaScript和=== ===有什麼區別?
- 23. difftime和' - '有什麼區別?
- 24. =和==有什麼區別?
- 25. 截斷分區與平面分區有什麼區別?
- 26. 在Spring攔截url配置中,ROLE_USER和ROLE_ANONYMOUS有什麼區別?
- 27. 地板功能和截斷功能有什麼區別?
- 28. OpenGL(ES) - 截錐體和正方體之間有什麼區別?
- 29. 使用djcelery時,撤銷,終止和終止有什麼區別?
- 30. 令牌過期日期(Google OAuth2)和憑證之間有什麼區別?
No-op也適用於SSD – r004 2014-06-28 07:13:15