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

作者: kimi9235 (惡人毛)   2020-07-31 14:23:17
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,但還是會吃記憶
體,不知各位有沒有遇到這類問題。
作者: leolarrel (真.粽子無雙)   2020-07-31 17:50:00
看你的敘述蠻正常的呀
作者: askacis (ASKA)   2020-08-02 22:11:00
google POSIX_FADV_DONTNEED告訴kernel不要把你的檔案cache起來sync應該只是寫入IO,但還是會cache以防你之後用會用
作者: kimi9235 (惡人毛)   2020-08-03 16:52:00
感謝askacis大,學到一課了!!!
作者: os369510 (Jeremy)   2020-08-25 10:18:00
看不懂問題 覺得buffet cache 用太多可以drop cache
作者: aweilin   2020-09-14 08:49:00
Dropcache 如果是一直在寫入狀態下是無法free的,且有一些page也無法立即的被free掉,通常寫檔都是一直在寫
作者: jack7923love (黃小p)   2020-09-14 23:53:00
dirty_ratio?

Links booklink

Contact Us: admin [ a t ] ucptt.com