最近常常要調校 SSD 的 Performance, 系統裡面有滿多可以設定的, 不過我對 Linux 還是個大外行, 只能收集一堆文章來看囉~
基本知識
http://doc.opensuse.org/products/draft/SLES/SLES-tuning_sd_draft/cha.tuning.io.html
http://www.wmduszyk.com/wp-content/uploads/2011/01/PE23_Braden_Nasypany.pdf
http://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/TD105745
http://xtremstorage.wordpress.com/2011/04/28/ssd-benchmarking-and-performance-tuning-pitfalls-and-recommendations/
Queue size 的設定
http://yoshinorimatsunobu.blogspot.tw/2009/04/linux-io-scheduler-queue-size-and.html
Increasing queue size does not have any effect on SSD because no disk seek happens.
Alignment 及 Scheduler 的設定
http://spiralofhope.com/partition-alignment.html
[5] noop
Good if you only use SSDs.
[6] deadline
The best choice for mixed SSDs and HDDs.
read_ahead_kb 的設定
http://www.fhgfs.com/wiki/wikka.php?wakka=ServerTuning
echo 4096 > /sys/block/sdX/queue/read_ahead_kb
echo 4096 > /sys/block/sdX/queue/nr_requests
LSI RAID card 設定
http://kb.lsi.com/KnowledgebaseArticle16607.aspx
上面有提到的這篇幾乎都有提到
補充
- Make the change "permanent" by editing /etc/rc.local and adding the echo line.
- If you use GRUB, you can edit /boot/grub/menu.lst and append elevator=deadline to the kernel line that you normally boot up with.
- kernel (hd0,5)/boot/vmlinuz BOOT_IMAGE=foo root=UUID=foo elevator=deadline
其它
http://lwn.net/Articles/408428/
結論
目前 Ubuntu 12.04 預設
Parameter
|
Value
|
/sys/block/$dev/queue/rotational
|
1
|
/sys/block/$dev/queue/nr_requests
|
128
|
/sys/block/$dev/device/queue_depth
|
256
|
/sys/block/$dev/queue/scheduler
|
cfg
|
個人的實驗經驗下來, scheduler (deadline) 以及 ratational (0) 這兩個影響最大, 設定了之後都可以單顆 SSD 都可以得到 20%+ 的改善, 如果原本是 RAID0/1/5 的狀況下, 甚至可以有 70%+ 的改善. nr_request 及 queue_depth 可以設定大一點的值, 但不一定有很明顯的改善.
沒有留言:
張貼留言