FILE IO - xiaoboluo768/qianjinliangfang GitHub Wiki

  • 第七段信息
    • FILE I/O部分提供有关InnoDB用于执行各种类型I/O的线程的信息。还包括暂时挂起的I/O操作信息、I/O性能的统计信息、I/O辅助线程的状态以及性能计数器的状态信息,如下:
--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)  #insert buffer thread
I/O thread 1 state: waiting for i/o request (log thread)  #log thread
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (read thread)
I/O thread 4 state: waiting for i/o request (read thread)
I/O thread 5 state: doing file i/o (read thread) ev set  #以上为默认的4个read thread
I/O thread 6 state: waiting for i/o request (write thread)
I/O thread 7 state: waiting for i/o request (write thread)
I/O thread 8 state: waiting for i/o request (write thread)
I/O thread 9 state: waiting for i/o request (write thread) #以上为默认的4个write thread

# 读线程和写线程挂起操作的数目等,aio的意思是异步I/O
Pending normal aio reads: 128 [0, 0, 0, 128] , aio writes: 0 [0, 0, 0, 0] ,  
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0  #insert buffer thread挂起的fsync()操作数目等
Pending flushes (fsync) log: 0; buffer pool: 0  #log thread挂起的fsync()操作数目等

#这行显示了读,写和fsync()调用执行的数目,在你的机器环境负载下这些绝对值可能会有所不同,因此更重要的是监控它们过去一段时间内是如何改变的。
146246831 OS file reads, 760501349 OS file writes, 247143684 OS fsyncs  

1 pending preads, 0 pending pwrites  #这行显示了当前被挂起的读和写操作数

# 这行显示了在头部显示的时间(指的是第1部分的时间)段内的每秒平均值。
145.49 reads/s, 783677 avg bytes/read, 28.75 writes/s, 10.67 fsyncs/s  

# 注:三行挂起读写线程、缓冲池线程、日志线程的统计信息的值是检测I/O受限的应用的一个好方法,如果这些I/O大部分有挂起操作,\
那么负载可能I/O受限。在linux系统下使用参数:innodb_read_io_threads和innodb_write_io_threads两个变量来配置读写线程的数量,默认为各4个线程。
## insert buffer thread:负责插入缓冲合并,如:记录被从插入缓冲合并到表空间中
## log thread:负责异步刷事务日志
## read thread:执行预读操作以尝试预先读取innodb预感需要的数据
## write thread:刷新脏页缓冲

上一篇:TRANSACTIONS | 下一篇:INSERT BUFFER AND ADAPTIVE HASH INDEX