2014年9月26日 星期五

2014年9月16日 星期二

linux kernel IO效能增進

http://yoshinorimatsunobu.blogspot.tw/2009/04/linux-io-scheduler-queue-size-and.html

有發現一個網誌提出更改sda的 scheduler 為noop
以及更改nr_requests為10000
可以大幅改進磁盤式硬碟寫入的時間

echo 10000 > /sys/block/sda/queue/nr_requests

linux的IO動作有下列順序

File system
I/O scheduler
Device Driver

磁盤式硬碟有disk seek的時間
硬碟內有TCQ機制 是一個IO指令佇列 通常長度只有32-64
nr_requests是linux 核心的IO scheduler的指令佇列長度
將nr_requests值設大會造成IO指令排程成為隨機的
恰好讓隨機資料存取搭配隨機指令
於是就可以大幅縮短磁碟隨機讀寫的執行時間

測試中