/sys/block/<dev>/stat 中的块层统计信息¶
本文档介绍了 /sys/block/<dev>/stat 文件的内容。
stat 文件提供了关于块设备 <dev> 状态的几个统计信息。
为什么单个文件中会有多个统计信息?sysfs 不是通常每个文件只包含一个值吗?
通过使用单个文件,内核可以保证统计信息代表设备状态的一致快照。如果将统计信息导出为多个文件,每个文件包含一个统计信息,则无法保证一组读取值代表单个时间点。
stat 文件由一行文本组成,其中包含 17 个十进制值,用空格分隔。这些字段汇总在下表中,并在下面详细描述。
名称 |
单位 |
描述 |
---|---|---|
读取 I/O |
请求 |
已处理的读取 I/O 数量 |
读取合并 |
请求 |
与队列中的 I/O 合并的读取 I/O 数量 |
读取扇区 |
扇区 |
读取的扇区数量 |
读取节拍 |
毫秒 |
读取请求的总等待时间 |
写入 I/O |
请求 |
已处理的写入 I/O 数量 |
写入合并 |
请求 |
与队列中的 I/O 合并的写入 I/O 数量 |
写入扇区 |
扇区 |
写入的扇区数量 |
写入节拍 |
毫秒 |
写入请求的总等待时间 |
in_flight |
请求 |
当前正在进行的 I/O 数量 |
io_ticks |
毫秒 |
此块设备处于活动状态的总时间 |
time_in_queue |
毫秒 |
所有请求的总等待时间 |
丢弃 I/O |
请求 |
已处理的丢弃 I/O 数量 |
丢弃合并 |
请求 |
与队列中的 I/O 合并的丢弃 I/O 数量 |
丢弃扇区 |
扇区 |
丢弃的扇区数量 |
丢弃节拍 |
毫秒 |
丢弃请求的总等待时间 |
刷新 I/O |
请求 |
已处理的刷新 I/O 数量 |
刷新节拍 |
毫秒 |
刷新请求的总等待时间 |
读取 I/O、写入 I/O、丢弃 I/O¶
这些值在 I/O 请求完成时递增。
刷新 I/O¶
这些值在刷新 I/O 请求完成时递增。
块层合并刷新请求,并且一次最多执行一个。这计算由磁盘执行的刷新请求。不跟踪分区。
读取合并、写入合并、丢弃合并¶
当 I/O 请求与已排队的 I/O 请求合并时,这些值会递增。
读取扇区、写入扇区、丢弃扇区¶
这些值计算从此块设备读取、写入或丢弃的扇区数。所说的“扇区”是标准的 UNIX 512 字节扇区,而不是任何设备或文件系统特定的块大小。计数器在 I/O 完成时递增。
读取节拍、写入节拍、丢弃节拍、刷新节拍¶
这些值计算 I/O 请求在此块设备上等待的毫秒数。如果有多个 I/O 请求在等待,这些值将以大于 1000/秒的速度增加;例如,如果 60 个读取请求平均等待 30 毫秒,则 read_ticks 字段将增加 60 * 30 = 1800。
in_flight¶
此值计算已发送到设备驱动程序但尚未完成的 I/O 请求的数量。它不包括在队列中但尚未发送到设备驱动程序的 I/O 请求。
io_ticks¶
此值计算设备有 I/O 请求排队的毫秒数。
time_in_queue¶
此值计算 I/O 请求在此块设备上等待的毫秒数。如果有多个 I/O 请求在等待,此值将增加,其值为等待的毫秒数乘以等待的请求数(请参阅上面的“读取节拍”中的示例)。