Berkenaan dengan IOPS, saya telah melihat beberapa sumber di web yang menyarankan IOPS dari sejumlah disk tertentu hanyalah IOPS dari satu disk yang dikalikan dengan jumlah disk.
Jika pemahaman saya tentang IOPS benar (dan saya sama sekali tidak yakin itu), saya akan berpikir realitas akan tergantung pada - di antara banyak faktor lain - tingkat RAID. Dengan RAID 1/10, semua data diduplikasi di setidaknya dua disk, mengurangi pertikaian pada disk tertentu untuk beberapa pola IO. Namun, dalam level RAID bergaris seperti RAID 0/5/6, data didistribusikan daripada digandakan, yang berarti permintaan baca berturut-turut bisa untuk spindle yang sama, yang mengarah ke pemblokiran sementara IO sebelumnya selesai. Menulis bahkan lebih diperdebatkan.
Saya harus menambahkan bahwa saya menghargai kenyataan jauh lebih kompleks karena berbagai optimisasi dan faktor lainnya. Pertanyaan saya sebenarnya hanya mengemudi pada apakah, pada tingkat yang sangat dasar, pemahaman saya tentang apa yang dimaksud IOPS berada di jalur yang benar. Bisa jadi pernyataan saya bahwa IOPS bahkan dapat dipengaruhi oleh level RAID sedemikian rupa menunjukkan kesalahpahaman dasar konsep.
sumber
Jawaban:
Untuk HDD , IOPS umumnya didominasi oleh waktu akses disk, yang merupakan jumlah latensi pencarian + penundaan rotasi + penundaan transfer. Karena variabel-variabel ini sangat bergantung pada pola akses dan memiliki interaksi yang tidak jelas dengan tata letak RAID spesifik (yaitu: ukuran garis) dan pengontrol (yaitu: baca tuning depan), setiap balasan sederhana AKAN SALAH.
Namun, mari kita coba untuk memiliki angka rata-rata. Pada perkiraan pertama, IOPS dijamin oleh array n-disk harus n-kali IOPS dari disk tunggal. Namun, baik tingkat RAID dan pola akses data , dengan menggeser bobot antara latensi pencarian / rotasi / transfer, secara drastis mengubah pendekatan tingkat pertama ini.
Mari kita lakukan beberapa contoh, dengan asumsi 100 IOPS per disk tunggal (nilai tipical untuk 7200 RPM disk) dan array 4-disk (kecuali untuk RAID1, sering dibatasi hanya untuk 2 arah):
Coba saya ulangi: di atas adalah perkiraan sederhana dan hampir rusak. Bagaimanapun, jika Anda ingin bermain dengan kalkulator RAID IOPS (sangat tidak lengkap), lihat di sini .
Sekarang, kembali ke dunia nyata. Pada beban kerja dunia nyata, RAID10 seringkali merupakan pilihan yang lebih cepat dan disukai , mempertahankan kinerja tinggi bahkan dalam menghadapi array yang rusak . RAID5 dan RAID6 tidak boleh digunakan pada beban kerja yang sensitif terhadap kinerja, kecuali jika sifatnya baca-sentris atau berurutan. Perlu dicatat bahwa pengontrol RAID yang serius memiliki cache writeback terproteksi daya yang besar, terutama untuk mengatasi (dengan caching strip berat) kinerja penulisan acak rendah RAID5 / 6. Jangan pernah gunakan RAID5 / 6 dengan pengontrol RAID tanpa cache , kecuali Anda benar-benar tidak peduli dengan kecepatan array.
SSD adalah binatang yang berbeda, pikir. Karena mereka memiliki waktu akses rata-rata yang jauh lebih rendah secara intrinsik, RAID berbasis paritas menghasilkan overhead kinerja yang jauh lebih rendah dan merupakan opsi yang jauh lebih layak daripada pada HDD. Namun, dalam beban kerja sentris acak-tulis kecil, saya akan menggunakan setup RAID10.
sumber
Itu hanya masalah definisi. Anda dapat mengukur IOPS di berbagai level dalam sistem dan Anda akan mendapatkan nilai yang berbeda. Sebagai contoh, misalkan Anda memiliki dua disk mirror dan Anda menulis secepat mungkin. IOPS yang menuju ke disk akan menjadi dua kali lipat jumlah IOPS yang dapat ditangani oleh satu disk dengan beban penulisan yang serupa. Tetapi IOPS yang masuk ke controller akan sama dengan jumlah IOPS yang bisa ditangani oleh satu disk.
Biasanya yang kita pedulikan adalah berapa banyak IOPS logis yang bisa kita masukkan ke dalam array dan kita tidak terlalu peduli dengan apa yang terjadi di level disk. Dalam hal ini, Anda benar dan IOPS tergantung pada tingkat RAID, jumlah disk, kinerja masing-masing disk, dan, dalam beberapa kasus, karakteristik spesifik operasi.
sumber