gpt4 book ai didi

linux - 内核是否不够聪明,无法为已读取的同一文件的 block 删除一些缓存?

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:19 26 4
gpt4 key购买 nike

我使用 readfor 循环中读取一个 2G 的文件。在文件的 80% 被读取后,程序在系统调用“read”中被阻止,因为没有更多的 RAM 用于缓存。

当没有足够的 RAM 可用于缓存时,内核是否不够聪明,无法为已读取的同一文件的 block 删除一些缓存,或者只是停止缓存以读取文件的其余部分?

最佳答案

Linux 内核如何知道 read 系统调用的用例是什么?它只知道 readwrite 等系统调用。读取实现与它用于复制 2G 文件的天气相同,或者当您切换到选项卡时由 firefox 使用它。

如果您需要该功能,您可以禁用缓存(我认为是这样的:echo 3 >/proc/sys/vm/drop_caches),或者创建一个“强制执行”的新系统调用一些应用程序的读写调用不处理内存缓存(我在本科时有这样的项目)。

关于linux - 内核是否不够聪明,无法为已读取的同一文件的 block 删除一些缓存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38889318/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com