Sharing

2012年6月3日 星期日

SSD Tuning 筆記



最近常常要調校 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 可以設定大一點的值, 但不一定有很明顯的改善.




沒有留言: