mysql 5.5引數--innodb_read(write)_io_threads

Steven1981發表於2010-11-25
# 在5.1版本上,這FILE_IO這一塊MYSQL只用了4個執行緒來處理IO;
# 但在5.5上,隨著對多執行緒的更強支援;INNODB也加強了對IO讀寫執行緒的支援;更多發揮多執行緒的優勢 ;
# IO執行緒預設增加到了10個;(配太多也沒用,因為IO能力有限,需要配合特殊機型)
# 其實這個在5.5.0就已經增強了,不過在這裡講也不晚;
[@more@]


### 5.1
# innodb_file_io_threads
# The number of file I/O threads in InnoDB.
# Normally, this should be left at the default value of 4, but disk I/O on Windows may benefit from a larger number.
# On Unix, increasing the number has no effect; InnoDB always uses the default value.

### 5.5
innodb_read_io_threads=4 # (default)
innodb_write_io_threads=4 # (default)

--------------------------------------------
: (none) 10:46:59> show variables like 'innodb_%io%threads';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| innodb_read_io_threads | 4 |
| innodb_write_io_threads | 4 |
+-------------------------+-------+
2 rows in set (0.00 sec)

: (none) 10:47:09> select version();
+--------------+
| version() |
+--------------+
| 5.5.7-rc-log |
+--------------+
1 row in set (0.00 sec)


##### show engine innodb status on V 5.5

###
FILE I/O
--------
I/O thread 0 state: waiting for completed aio requests (insert buffer thread)
I/O thread 1 state: waiting for completed aio requests (log thread)
I/O thread 2 state: waiting for completed aio requests (read thread)
I/O thread 3 state: waiting for completed aio requests (read thread)
I/O thread 4 state: waiting for completed aio requests (read thread)
I/O thread 5 state: waiting for completed aio requests (read thread)
I/O thread 6 state: waiting for completed aio requests (write thread)
I/O thread 7 state: waiting for completed aio requests (write thread)
I/O thread 8 state: waiting for completed aio requests (write thread)
I/O thread 9 state: waiting for completed aio requests (write thread)
Pending normal aio reads: 0 [0, 0, 0, 0] , aio writes: 0 [0, 0, 0, 0] ,
ibuf aio reads: 0, log i/o's: 0, sync i/o's: 0
Pending flushes (fsync) log: 0; buffer pool: 0
153 OS file reads, 3 OS file writes, 3 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s

##### show engine innodb status on V5.1

--------
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: 0
24 OS file reads, 138506 OS file writes, 6249 OS fsyncs
0.00 reads/s, 0 avg bytes/read, 0.00 writes/s, 0.00 fsyncs/s


#我們發現,
#在5.1的4個FILE_iO 執行緒包括:
insert buffer thread
log thread
read thread
write thread

#而在5.5, 總共有10個FILE_IO執行緒
(insert buffer thread) * 1
(log thread) * 1
(read thread) * 4
(write thread) * 4

有了更多讀寫執行緒的支援,也相應地增加了INNODB更大的併發能力;
期待5.5版本的更快成熟;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/703656/viewspace-1042057/,如需轉載,請註明出處,否則將追究法律責任。

相關文章