/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/0¶
这些值在 I/O 请求完成时递增。
刷新 I/O¶
这些值在刷新 I/O 请求完成时递增。
块层组合刷新请求并一次最多执行一个。 这计算由磁盘执行的刷新请求。 不会为分区跟踪。
读取合并、写入合并、丢弃合并¶
当 I/O 请求与已排队的 I/O 请求合并时,这些值会递增。
读取扇区、写入扇区、discard_sectors¶
这些值计算从该块设备读取、写入或丢弃的扇区数。 所讨论的“扇区”是标准的 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 请求正在等待,则此值将以毫秒数乘以等待请求数的乘积增加(有关示例,请参见上面的“读取节拍”)。