[問題] Linux Read/Write buffer\cache問題

看板LinuxDev作者 (惡人毛)時間3年前 (2020/07/31 14:23), 編輯推噓2(207)
留言9則, 6人參與, 3年前最新討論串1/1
Hi 各位大大好 最近在開發板錄影寫檔到USB隨身碟,由於4K frame過大,所以只要一寫檔就會讓buffer/c ache吃滿滿。 但程式也不會突然中止,但寫完檔也不會還回去,除非將檔案移除後才會將buffer/cache 回到free的狀態,本來以為是自己程式有誤,拿DD去測試寫檔也是同樣問題。 (dd if=/dev/zero of=/mnt/usb/123.xxx bs=1M count=1K conv=fsync) 雖然有些文章是寫說,當有user program需要memory會優先釋放buffer/cache,但還是覺 得怪怪的,畢竟都會吃到memory剩下2~3MB,後來也開檔 mount下過sync,但還是會吃記憶 體,不知各位有沒有遇到這類問題。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 60.250.31.12 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/LinuxDev/M.1596176599.A.DBD.html

07/31 17:50, 3年前 , 1F
看你的敘述蠻正常的呀
07/31 17:50, 1F

08/02 22:11, 3年前 , 2F
google POSIX_FADV_DONTNEED
08/02 22:11, 2F

08/02 22:11, 3年前 , 3F
告訴kernel不要把你的檔案cache起來
08/02 22:11, 3F

08/02 22:13, 3年前 , 4F
sync應該只是寫入IO,但還是會cache以防你之後用會用
08/02 22:13, 4F

08/03 16:52, 3年前 , 5F
感謝askacis大,學到一課了!!!
08/03 16:52, 5F

08/25 10:18, 3年前 , 6F
看不懂問題 覺得buffet cache 用太多可以drop cache
08/25 10:18, 6F

09/14 08:49, 3年前 , 7F
Dropcache 如果是一直在寫入狀態下是無法free的,且
09/14 08:49, 7F

09/14 08:49, 3年前 , 8F
有一些page也無法立即的被free掉,通常寫檔都是一直在寫
09/14 08:49, 8F

09/14 23:53, 3年前 , 9F
dirty_ratio?
09/14 23:53, 9F
文章代碼(AID): #1V8xZNsz (LinuxDev)