Memory linux虚拟内存参数

Memory linux虚拟内存参数,memory,linux-kernel,Memory,Linux Kernel,有人能告诉我Linux VM可调参数中脏字节和脏字节的工作情况吗 我推断,dirty_字节指定了执行写入操作的应用程序开始直接写入磁盘的内存量。它是否正确,或者如果分配的内存量已用完,则先将该部分传输到磁盘,然后再将新数据存储在内存中。例如,假设我想将一个1 GB的文件传输到磁盘,我将dirty_字节设置为100 MB,然后一旦将100 MB写入内存,执行写入操作的应用程序现在开始将数据直接写入磁盘,或者将100 MB传输到磁盘,然后再次将100 MB写入内存,然后再传输到磁盘,依此类推 如果是

有人能告诉我Linux VM可调参数中脏字节和脏字节的工作情况吗

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

如果是脏的\u后台\u字节,当脏内存部分超过此值时,pdflush将脏数据写回后台磁盘


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

否,超过
脏字节数(或
脏字节数比率)不会导致进程开始直接写入磁盘

相反,当一个进程污染了一个超过限制的页面时,该进程被用来执行一些脏页面的同步写操作——确切地说,哪些脏页面仍然由通常的启发式算法决定。它们甚至不一定是最初被特定流程弄脏的页面

实际上,进程看到它的写操作(可能只是内存写操作)被挂起,直到发生某些写操作为止


关于
dirty\u background.*
,您是正确的。超过后台限制时,将启动异步写出,但允许用户空间进程继续。

而且由于脏的\u后台字节和脏的\u字节控制写缓存,是否有任何参数或方法来控制读缓存的大小?@randy7:swappiness
参数通过调出非活动匿名页和从页缓存中回收来调整重新格式化内存之间的平衡。这里的数字越小,内核越倾向于页缓存回收。@randy7 dirty_background_字节和dirty_字节不控制写缓存大小。它们告诉内核何时将脏页写入后端存储。数据将保留在文件系统缓存中。