gpt4 book ai didi

memory - Linux虚拟内存参数

转载 作者:行者123 更新时间:2023-12-02 05:40:50 24 4
gpt4 key购买 nike

谁能告诉我 Linux VM 可调参数中 dirty_bytes 和 dirty_background_bytes 的工作原理。

我推断 dirty_bytes 指定了应用程序执行写入操作后开始直接写入磁盘的内存量。是否正确,或者如果分配的内存量已用完,则该部分首先传输到磁盘,然后新数据再次存储在内存中。例如。假设我想将 1 GB 文件传输到磁盘,并将 dirty_bytes 设置为 100 MB,那么一旦将 100 MB 写入内存,执行写入操作的应用程序现在开始将数据直接写入磁盘,或者将 100 MB 传输到磁盘,然后再次将 100 MB 写入内存,然后传输到磁盘,依此类推?

在 dirty_background_bytes 的情况下,当脏内存部分超过此值时,pdflush 会在后台将脏数据写回磁盘。

我对这两个参数的理解正确吗?

最佳答案

不,超过dirty_bytes(或dirty_ratio)不会导致进程开始直接写入磁盘。

相反,当进程弄脏页面超过限制时,该进程将用于执行一些脏页面的同步写出 - 到底哪些脏页面仍然由通常的启发式方法决定。它们甚至不一定是最初被该特定进程弄脏的页面。

实际上,进程看到其写入(可能只是内存写入)暂停,直到发生某些写出。

您关于dirty_background_*的说法是正确的。当超过后台限制时,启动异步写出,但允许用户空间进程继续。

关于memory - Linux虚拟内存参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6834929/

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