page cache
linux作業系統預設情況下寫都是有寫快取的,可以使用direct io方式繞過作業系統的寫快取。當你寫一串資料時,系統會開闢一塊記憶體區域快取這些資料,這塊區域就是我們常說的page cache(作業系統的頁快取)。檢視系統記憶體常用的命令有:vmstat、free、top等。
可以使用 cat /proc/meminfo 檢視詳細的記憶體使用情況
其中的cached為140m左右(page cache)。注意其中有乙個dirty: 24kb,表示當前有24kb的資料快取在page cache,這些資料等待後台執行緒刷入磁碟。隨著寫入資料增加,這個值也會增加。
writeback
有了page cache就有了writeback寫方式。乙個寫io會先寫入page cache,然後等待後台pdflush把page cache中髒資料刷入磁碟。如果在刷入磁碟之前系統斷電,則page cache的資料丟失。所以對一些可靠性要求高的場景都會把這個寫快取禁掉。writeback寫方式是linux作業系統提供的一種非常通用寫模式。writeback提供了較好的吞吐量,有了快取也縮短了io響應時間。但它也有缺點:(1)斷電可能丟資料(資料安全性)(2)對於像資料庫這樣自快取的系統來說,多了一層io快取開銷。因為資料庫已經在應用層做了一層快取。所以對於這樣的應用可以用direct io方式,減少使用者空間和page cache之間資料複製開銷。(3)如果page cache過大,那麼就會快取太多的資料,當需要統一刷入磁碟的時候就會出現乙個io峰值和瓶頸,在這其間對使用者的io訪問出現明顯影響。如果想削平這個峰值可以把page cache容量設定小一點,讓pdflush一段時間內較為平均的重新整理dirty資料。
pdflush
pdflush是linux系統後台執行的乙個執行緒,這個程序負責把page cahce中的dirty狀態的資料定期的輸入磁碟。乙個系統中會執行很多這個pdflush。cat /proc/sys/vm/nr_pdflush_threads檢視當前系統執行pdflush數量。當一段時間(一般是1s)沒有任何的pdflush處於工作狀態,系統會remove乙個pdflush執行緒。pdflush最大和最小的數量是有配置的,但這些配置一般很少修改。
linux IO 核心引數調優 之 原理和引數介紹
1.page cache linux作業系統預設情況下寫都是有寫快取的,可以使用direct io方式繞過作業系統的寫快取。當你寫一串資料時,系統會開闢一塊記憶體區域快取這些資料,這塊區域就是我們常說的page cache 作業系統的頁快取 檢視系統記憶體常用的命令有 vmstat free top...
linux之核心引數調優
調優1 調優2調優3 調優4net.ipv4.tcp syncookies 1 net.ipv4.tcp tw reuse 1 net.ipv4.tcp tw recycle 1 net.ipv4.tcp fin timeout 30 net.ipv4.tcp keepalive time 1200...
Linux核心 修改TCP IP調優引數
所有的tcp ip調優引數都位於 proc sys net 目錄.例如,下面是最重要的一些調優引數,後面是它們的含義 1.proc sys net core rmem max 最大的tcp資料接收緩衝 2.proc sys net core wmem max 最大的tcp資料傳送緩衝 3.proc ...