作者kimi9235 (恶人毛)
看板LinuxDev
标题[问题] Linux Read/Write buffer\cache问题
时间Fri Jul 31 14:23:17 2020
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://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1596176599.A.DBD.html
1F:→ leolarrel: 看你的叙述蛮正常的呀 07/31 17:50
2F:推 askacis: google POSIX_FADV_DONTNEED 08/02 22:11
3F:→ askacis: 告诉kernel不要把你的档案cache起来 08/02 22:11
4F:→ askacis: sync应该只是写入IO,但还是会cache以防你之後用会用 08/02 22:13
5F:→ kimi9235: 感谢askacis大,学到一课了!!! 08/03 16:52
6F:→ os369510: 看不懂问题 觉得buffet cache 用太多可以drop cache 08/25 10:18
7F:→ aweilin: Dropcache 如果是一直在写入状态下是无法free的,且 09/14 08:49
8F:→ aweilin: 有一些page也无法立即的被free掉,通常写档都是一直在写 09/14 08:49
9F:推 jack7923love: dirty_ratio? 09/14 23:53