在任务管理器(和 Sysinternals 的进程资源管理器)中,有“I/O 读取”、“I/O 写入”、“I/O 读取字节”和“I/O 写入字节”等列。那么这些计数器到底是什么意思呢?除了磁盘和网络活动之外,它们还包括什么?
在 Process Explorer 中,我看到许多进程的“磁盘读取字节数”和“网络接收字节数”为零,但“I/O 读取字节数”不为零。相反,有些进程的“磁盘读取字节数”值大于“I/O 读取字节数”。这怎么可能呢?
答案1
我怎么可能有一个进程的“I/O 读取字节数”为 4MiB,而“磁盘读取字节数”为零呢?
I/O 读取字节不仅仅是磁盘读取字节:
- 包括文件、网络和设备 I/O
- 确实如此不是包括控制台 I/O
I/O 读取字节数 - 进程生成的输入/输出操作(包括文件、网络和设备 I/O)中读取的字节数。指向 CONSOLE(控制台输入对象)句柄的 I/O 读取字节数不计算在内。
I/O数据是什么意思?
Process Explorer 的 I/O 列
I/O Delta - 自上次测量以来 I/O 操作的变化
I/O 增量字节 - 自上次测量以来 I/O 字节的变化。
I/O 其他 - 进程生成的既不是读取也不是写入的输入/输出操作数,包括文件、网络和设备 I/O。此类操作的一个示例是控制函数。指向 CONSOLE(控制台输入对象)句柄的 I/O 其他不计算在内。
I/O 其他字节 - 进程生成的输入/输出操作(既不是读取也不是写入)中传输的字节数,包括文件、网络和设备 I/O。此类操作的一个示例是控制函数。指向 CONSOLE(控制台输入对象)句柄的 I/O 其他字节不计算在内。
I/O 读取字节数 - 进程生成的输入/输出操作(包括文件、网络和设备 I/O)中读取的字节数。指向 CONSOLE(控制台输入对象)句柄的 I/O 读取字节数不计算在内。
I/O 读取 - 进程生成的读取输入/输出操作数,包括文件、网络和设备 I/O。指向 CONSOLE(控制台输入对象)句柄的 I/O 读取不计算在内。
I/O 写入字节数 - 进程生成的输入/输出操作(包括文件、网络和设备 I/O)中写入的字节数。指向 CONSOLE(控制台输入对象)句柄的 I/O 写入字节数不计算在内。
I/O 写入 - 进程生成的写入输入/输出操作数,包括文件、网络和设备 I/O。指向 CONSOLE(控制台输入对象)句柄的 I/O 写入不计算在内。