Sebagian besar sistem Linux yang saya kelola memiliki fitur pengontrol RAID perangkat keras (kebanyakan HP Smart Array ). Mereka semua menjalankan RHEL atau CentOS.
Saya mencari tunable dunia nyata untuk membantu mengoptimalkan kinerja untuk pengaturan yang menggabungkan pengontrol RAID perangkat keras dengan disk SAS (Smart Array, Perc, LSI, dll.) Dan cache yang didukung oleh baterai atau cache yang didukung flash. Asumsikan RAID 1 + 0 dan beberapa spindel (4+ disk).
Saya menghabiskan banyak waktu menyetel pengaturan jaringan Linux untuk latensi rendah dan aplikasi perdagangan finansial. Tetapi banyak dari opsi-opsi tersebut didokumentasikan dengan baik (mengubah buffer kirim / terima, mengubah pengaturan jendela TCP, dll.). Apa yang dilakukan para insinyur di sisi penyimpanan?
Secara historis, saya telah membuat perubahan pada lift penjadwalan I / O , baru-baru ini memilih deadline
dan noop
penjadwal untuk meningkatkan kinerja dalam aplikasi saya. Karena versi RHEL telah mengalami kemajuan, saya juga memperhatikan bahwa default yang dikompilasi untuk perangkat blok SCSI dan CCISS telah berubah juga. Ini berdampak pada pengaturan subsistem penyimpanan yang disarankan dari waktu ke waktu. Namun, sudah beberapa saat sejak saya melihat rekomendasi yang jelas. Dan saya tahu bahwa standar OS tidak optimal. Sebagai contoh, tampaknya buffer read-ahead standar 128kb sangat kecil untuk penyebaran pada perangkat keras kelas server.
Artikel-artikel berikut mengeksplorasi dampak kinerja dari mengubah cache baca-depan dan nilai nr_requests pada antrian blok.
http://zackreed.me/articles/54-hp-smart-array-p410-controller-tuning
http://www.overclock.net/t/515068/tuning-a-hp-smart-array-p400-with -linux-why-tuning-really-matter
http://yoshinorimatsunobu.blogspot.com/2009/04/linux-io-scheduler-queue-size-and.html
Misalnya, ini adalah perubahan yang disarankan untuk pengontrol RAID Cerdas Array:
echo "noop" > /sys/block/cciss\!c0d0/queue/scheduler
blockdev --setra 65536 /dev/cciss/c0d0
echo 512 > /sys/block/cciss\!c0d0/queue/nr_requests
echo 2048 > /sys/block/cciss\!c0d0/queue/read_ahead_kb
Apa lagi yang bisa disetel secara andal untuk meningkatkan kinerja penyimpanan?
Saya secara khusus mencari opsi sysctl dan sysfs dalam skenario produksi.