雲端計算學習路線圖素材課件:Linux效能最佳化IO子系統
Linux是一個基於POSIX和Unix的多使用者、多工、支援多執行緒和多CPU的作業系統,具有免費使用和自由傳播的特性。隨著開源軟體的發展以及雲端計算技術的革新,Linux成為雲端計算人才必須要掌握的技能之一。下面給大家分享雲端計算學習路線圖素材課件:Linux效能最佳化IO子系統的內容。
很多同學聽過IO流,即以流的方式進行輸入輸出,其中流是一種抽象的概念,它代表了資料的無結構化傳遞。IO系統,英文全稱為“Input output system”,中文全稱為“輸入輸出系統”,由輸入輸出控制系統和外圍裝置兩部分組成,是計算機系統的重要組成部分。
作為Linux伺服器來講,最大的兩個IO型別是磁碟IO和網路IO。一個完整的IO系統過程如下:
1)一個使用者程式透過write()系統呼叫發起寫請求;
2)核心更新對應的page cache;
3)pdflush核心執行緒將page cache寫入至磁碟中;
4)檔案系統層將每一個block buffer存放為一個bio結構體,並向塊裝置層提交一個寫請求;
5)塊裝置層從上層接受到請求,執行IO排程操作,並將請求放入IO請求佇列中;
6)裝置驅動(如SCSI或其他裝置驅動)完成寫操作;
7)磁碟裝置韌體執行對應的硬體操作,如磁碟的旋轉、尋道等,資料被寫入到磁碟扇區中。
block layer處理bio請求,並將這些請求連結成一個佇列,稱作IO請求佇列,這個連線的操作就稱作IO排程(也叫IO elevator即電梯演算法)。bio結構體是file system layer到block layer的介面。
IO排程器的總體目標是減少磁碟的尋道時間(因此排程器都是針對機械硬碟進行最佳化的),IO排程器透過兩種方式來減少磁碟尋道:合併和排序。
合併即當兩個或多個IO請求的是相鄰的磁碟扇區,透過合併請求,多個IO請求只需要向磁碟傳送一個請求指令,減少了磁碟的開銷。
排序就是將不能合併的IO請求,根據請求磁碟扇區的順序,在請求佇列中進行排序,使得磁頭可以按照磁碟的旋轉順序的完成IO操作,可以減小磁碟的尋道次數。
想要最佳化IO系統效能,我們可以採用以下幾種方式:
1)調整buffer、提高效能,就是調整佇列數以及增加預讀數。
增加佇列長度:/sys/block/vda(特定某裝置)/queue/nr_requests
增加預讀數:/sys/block/vda(特定某裝置)/queue/read_ahead_kb
2)修改CFQ,以調節其效能,涉及引數檔案:/sys/block/vda/queue/iosched/。
比如對CFQ來講,有以下幾個值可以調整:
back_seek_max
反向尋道可能有負面影響,負載小的時候可以啟用,否則不要使用反向尋道太多值。
back_seek_penal
反向尋道做懲罰,如果不得不使用反向尋道的話,那麼必須對其做出一定懲罰,一旦做完懲罰之後,必須要正向尋道更多次數。
fifo_expire_async
用來控制非同步請求等待時間長度,預設是250毫秒,過期之後無法滿足的非同步請求將會被移動到排程佇列中,也就意味著要重新排程,通常這些值不需要調整。
除了以上方法,IO最佳化的方法還有很多,大致思路是最好換SSD、調整raid級別、選擇IO排程器、根據場景選擇合適的檔案系統、配置選定排程器的引數、使用工具進行分析最佳化結果是否理想、寫在開機啟動項裡。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69916964/viewspace-2674570/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 雲端計算學習路線圖素材課件:雲端計算常用的開源工具開源工具
- 雲端計算學習路線圖素材、課件,TIMESTAMPADD知識點
- 雲端計算學習路線圖素材、課件, join之間的區別
- 雲端計算學習路線圖素材、課件,msyql中CASE WHEN語法
- 雲端計算學習路線圖素材、課件,mysql中函式的用法MySql函式
- 雲端計算學習路線圖素材課件,Linux中軟體安裝的方式Linux
- 雲端計算學習路線圖素材課件:DevOps和雲端計算之間的關係dev
- 雲端計算學習路線圖素材課件:Docker容器應用場景分析Docker
- 雲端計算學習路線圖素材、課件,CASE搜尋函式語法函式
- 雲端計算學習路線圖素材、課件,CASE的其他用法講解
- 雲端計算學習路線圖素材、課件,什麼是雲端計算的核心技術基礎?
- 雲端計算學習路線教程大綱課件:FAT檔案系統
- 雲端計算學習路線教程大綱課件:XFS檔案系統
- 雲端計算學習素材框架,msyql查詢操作課件框架
- 雲端計算學習素材框架,msyql高階操作課件框架
- 雲端計算學習路線圖課件:多雲的管理方法
- 雲端計算學習路線教程大綱課件:部署網校系統 edusoho
- 雲端計算學習路線教程大綱課件:部署部落格系統wordpress
- 雲端計算教程學習路線影片原始碼課件:Linux效能監控工具-gtop原始碼Linux
- 雲端計算學習素材、課件,msyql知識點講解
- 雲端計算學習路線圖課件:雲端計算中的常見的雲配置錯誤
- 雲端計算學習路線圖課件:學Docker容器怎樣快速入門?Docker
- 雲端計算學習路線教程大綱課件:FTP ServerFTPServer
- 雲端計算素材、課件:雲端計算可以做什麼用?
- 雲端計算學習路線圖課件:Kubernetes知識點詳解
- 雲端計算學習路線教程大綱課件:Linux新手入門教程Linux
- 雲端計算學習素材、課件,大資料和雲端計算的關係是什麼?大資料
- 雲端計算學習路線教程大綱課件:使用自建源
- 雲端計算學習路線教程大綱課件:關於NFSNFS
- 雲端計算學習路線教程大綱課件:LVM管理LVM
- 雲端計算學習路線教程大綱課件:雲端計算開發程式設計條件結構程式設計
- 雲端計算進階學習路線圖課件:Docker容器的四種網路模式Docker模式
- 雲端計算學習路線教程大綱課件:EXT2/3/4檔案系統
- 雲端計算學習路線教程大綱課件:網路管理基礎
- 雲端計算學習路線教程大綱課件:檔案連結
- 雲端計算學習路線教程大綱課件:關於HTTP ServerHTTPServer
- 學習雲端計算有哪些優勢?雲端計算教程學習路線圖
- 雲端計算學習路線教程大綱課件:Mount 掛載詳解