Thursday, July 20, 2006

SHOW INNODB STATUS: FILE IO


--------
FILE I/O
--------
I/O thread 0 state: waiting for i/o request (insert buffer thread)
I/O thread 1 state: waiting for i/o request (log thread)
I/O thread 2 state: waiting for i/o request (read thread)
I/O thread 3 state: waiting for i/o request (write thread)
Pending normal aio reads: 0, aio writes: 0,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 1
29333024 OS file reads, 299924198 OS file writes, 226649540 OS fsyncs
5.33 reads/s, 17408 avg bytes/read, 195.60 writes/s, 77.31 fsyncs/s


Innodb support greater then 4 helper threads (the 4 above) in windows and with a small change the the source it can be increased for unix.

Each Helper thread shows the pending status of how many jobs are queued for executing, with just 4 helper threads on one of my most heavy hit dbs, jobs are not queued, IO is cool in linux, that's why INNODB nativly doesn't allow for more IO threads.


Also Pending flushes is shown since innodb doesn't rely on the os to say the data is commited but the disk itself. When a crash happens data in the OS cache can be lost corrupting your database, thus the need for a flush!

OS file * section is great for monitoring, for innodb use of IO. (I think this is better then I/O Stat)

No comments: