linux dirty_writeback_centisecs 内核参数没有作用

问题描述 投票:0回答:2

今天,我正在学习linux文件系统。我了解了

.dirty
内核参数。当我想测试
dirty_writeback_centisecs
参数时,发现
dirty_writeback_centisecs
没有任何作用。

我将

dirty_writeback_centisecs
内核参数设置为值 5000。

理论上来说,内存中的脏数据可能会被flush到磁盘上。但我用Python打开一个文件

hello
,然后用文件句柄将“hello world”写入内存。我等了 500 秒,文件
hello
还是空的。

测试前,文件

hello
为空:

linux-4gcq:/tmp # cat hello
linux-4gcq:/tmp #

使用python写入文件:

f = open('/tmp/hello','w')
f.write('hello world')

等了很久,文件还是空的。

linux parameters kernel
2个回答
1
投票

Python 使用

f.write
缓冲输出。您需要使用
f.flush

与内核参数无关。无论这些内核参数如何,您都会看到文件内容,它们仅在某些内容到达媒体时产生影响,而不会在您在文件系统中看到它时产生影响。


0
投票

根据https://docs.kernel.org/admin-guide/sysctl/vm.html

看起来

dirty_writeback_centisecs
是为了设置脏检查的周期,看看是否有东西需要冲洗。您可能还需要设置
dirty_expire_centisecs
以便清除符合条件的旧数据

© www.soinside.com 2019 - 2024. All rights reserved.