为什么我的系统进程正在执行磁盘 IO?

为什么我的系统进程正在执行磁盘 IO?

有时我想看看一个程序实际使用了多少资源。但似乎很多时候,即使进程正在做很多例如,它几乎不执行任何磁盘 IO。系统另一方面,过程正在做很多的。

例如,在我的具体案例中,我有一个小型的 SFTP 服务器,它正在接收大量数据,我可以在网络选项卡资源监控器.但在磁盘tabl,它几乎不做任何事情,除了对X:\$BitMap和进行一些小的读取X:\$Mft系统但是它的写入速度似乎与网络接收速度相似,并且它访问的文件是 SFTP 服务器正在接收的文件。

这到底发生了什么事?

答案1

MappedPageWriter 线程位于系统进程中。此线程负责将映射文件的已修改页面写入其所属的文件。(它与 ModifiedPageWriter 线程类似,后者也位于系统进程中,对由页面文件支持的已修改页面执行相同操作……ModifiedPageWriter 线程负责将页面写入页面文件。)

映射文件机制由 Windows 文件缓存使用,当程序对文件进行传统的读/写访问时,默认情况下会使用该机制。当然,如果您的 sftp 服务器对其接收的文件使用映射文件而不是 r/w 调用,那么这些也是映射文件。

因此,这是在 Windows 上写入文件的正常部分...除非程序使用 FILE_FLAG_NOBUFFERING 打开了输出文件,这会绕过 Windows 文件缓存(并且有很多缺点)。

相关内容