Bagaimana perubahan IOPS penyimpanan dalam menanggapi kapasitas disk?

12

Semua hal lain dianggap sama, bagaimana kinerja IOPS array penyimpanan akan berubah jika menggunakan disk yang lebih besar.

Misalnya, ambil array dengan disk 10 X 100GB.

Ukur IOPS untuk menulis blok 256kb berurutan (atau metrik IOPS lainnya)

Mari kita asumsikan IOPS yang diukur adalah 1000 IOPS.

Ubah array untuk satu dengan disk 10 X 200GB. Format dengan konfigurasi RAID yang sama, ukuran blok yang sama, dll.

Apakah orang mengharapkan IOPS tetap sama, naik, atau turun? Apakah perubahannya akan linear? yaitu meningkat 2X atau berkurang 2X (karena saya telah meningkatkan kapasitas disk sebesar 2X)

Ulangi pertanyaan ini dengan disk 10 X 50GB.

Sunting: Lebih Banyak Konteks

Pertanyaan ini menghasilkan percakapan di antara tim Sysadmin saya yang tidak berpengalaman dalam semua hal penyimpanan. (Nyaman dengan banyak aspek penyimpanan, tetapi tidak detail mengelola SAN atau apa pun). Kami menerima tumpukan besar baki Netapp baru yang memiliki kapasitas disk per disk lebih tinggi - kapasitas dua kali lipat - daripada baki kami yang ada. Komentar muncul bahwa IOPS dari baki baru akan lebih rendah hanya karena disk lebih besar. Kemudian analogi mobil muncul untuk menjelaskan hal ini. Tidak ada komentar yang cocok dengan saya sehingga saya ingin menjalankannya untuk The Team, yaitu Stack-Exchange-land.

Analogi mobil adalah sesuatu tentang dua mobil, dengan akselerasi yang berbeda, kecepatan tertinggi yang sama, dan berjalan seperempat mil. Kemudian ubah jarak menjadi setengah mil. Sebenarnya, saya tidak dapat mengingat analogi yang tepat, tetapi karena saya menemukan analogi lain di interwebz yang serupa, saya pikir itu mungkin analogi IOPS yang umum.

Dalam beberapa hal, jawaban aktual untuk pertanyaan itu tidak terlalu penting bagi saya, karena kami tidak menggunakan informasi ini untuk mengevaluasi pembelian. Tetapi kita perlu mengevaluasi cara terbaik untuk menempelkan baki ke kepala yang ada, dan cara terbaik untuk mengelompokkan agregat dan volume.

JDS
sumber
2
Operasi I / O per detik tidak akan naik jika kapasitas disk naik - ini terkait dengan transfer rate end to end dan disk i / o rate (dan caching). Apa masalah spesifik yang Anda coba selesaikan?
EightBitTony
3
Apakah ini hipotetis (dan karenanya di luar topik)?
mfinni
Itu tidak benar-benar berubah ... kecuali jika Anda sedang berbicara tentang membatasi gerakan kepala melintasi piring melalui gerakan pendek ... Atau SSD yang terlalu banyak digunakan ...
ewwhite
Sebagai catatan, disk yang lebih besar biasanya berisi lebih banyak pengontrol modern, motor dan head, disk yang lebih kecil biasanya hanya menggunakan kembali gen sebelumnya yang "cukup baik", sehingga disk berkapasitas tinggi seringkali lebih cepat tetapi bukan karena mereka lebih besar tetapi karena mereka adalah lebih baik dibuat.
Vality
2
@mfinni: Sayangnya layanan berawan memang ada yang memiliki batasan buatan pada IOPS berdasarkan pada ukuran disk (virtual). Lihat jawaban saya untuk detailnya. Saya pernah melihat "devops" bingung dengan ini sebelumnya.
dotancohen

Jawaban:

8

Untuk menjawab pertanyaan Anda secara langsung - semua hal lain dianggap sama = tidak ada perubahan apa pun ketika GB berubah.

Anda tidak mengukur IOPS dengan GB. Anda menggunakan waktu pencarian dan latensi.

Saya bisa menulis ulang semuanya di sini, tetapi contoh-contoh di bawah ini sudah melakukan semua itu dan saya hanya akan mengulanginya:

https://ryanfrantz.com/posts/calculating-disk-iops.html

http://www.big-data-storage.co.uk/how-to-calculate-iops/

http://www.wmarow.com/strcalc/

http://www.thecloudcalculator.com/calculators/disk-raid-and-iops.html

Ian Macintosh
sumber
Tetapi jangan mencari waktu dan latensi naik jika disk memiliki kapasitas lebih besar?
JDS
Tidak harus @JDS. Kadang-kadang mereka melakukannya dan kadang-kadang tidak karena produsen terus memasukkan lebih banyak bit ke piring-piring (lebih banyak GB) dan juga terus meningkatkan aspek lain dari hard drive mereka. Ketika drive bertambah besar, sering pula terjadi peningkatan perangkat keras lainnya secara bersamaan yang dapat menurunkan waktu pencarian atau latensi, sehingga meningkatkan IOPS Anda. Tapi itu semua poin yang diperdebatkan karena GB tidak memiliki hubungan langsung dengan IOPS, hanya mencari waktu dan membaca dan menulis latensi yang memengaruhi IOPS.
Ian Macintosh
11

Saya tahu ini mungkin pertanyaan hipotetis ... Tapi dunia IT benar-benar tidak berfungsi seperti itu. Ada kendala realistis untuk dipertimbangkan, ditambah hal-hal lain yang dapat memengaruhi IOPS ...

  • Disk 50GB dan 100GB tidak benar-benar ada lagi. Pikirkan lebih lanjut: disk perusahaan , 72, 146, 300, 450, 600, 900, 1200GB, dan 500, 1000, 2000, 3000, 4000, 6000GB dalam media penyimpanan massal nearline / midline.

  • Ada begitu banyak abstraksi dalam penyimpanan modern; disk caching, caching controller, SSD offload, dll. bahwa perbedaan apa pun akan sulit dilihat.

  • Anda memiliki faktor bentuk drive, antarmuka, dan kecepatan rotasi yang berbeda untuk dipertimbangkan. Disk SATA memiliki profil kinerja yang berbeda dari SAS atau nearline SAS . Disk 7.200RPM berperilaku berbeda dari 10.000RPM atau 15.000RPM. Dan ketersediaan berbagai kecepatan rotasi terbatas pada kapasitas tertentu.

  • Tata letak pengontrol fisik. Ekspander SAS, pengontrol RAID / SAS dapat memengaruhi IOPS, tergantung pada tata letak disk, kecepatan langganan berlebih, apakah konektivitas internal ke server atau di enklosur eksternal. Sejumlah besar disk SATA berkinerja buruk pada ekspander dan selama kondisi kesalahan drive .

  • Beberapa di antaranya dapat dipengaruhi oleh fragmentasi, kapasitas yang digunakan pada disk array.

  • Pernah mendengar guratan pendek ?

  • RAID perangkat lunak versus perangkat keras, prefetching, profiling adaptif ...

Apa yang mengarah Anda untuk percaya kapasitas yang akan memiliki setiap berdampak pada kinerja di tempat pertama? Bisakah Anda memberikan lebih banyak konteks?

Edit:

Jika jenis disk, faktor bentuk, antarmuka, dan kapasitas yang digunakan adalah sama, maka seharusnya tidak ada perbedaan yang cukup besar dalam IOPS. Katakanlah Anda pergi dari 300GB ke 600GB disk SAS 10k perusahaan. Dengan jumlah spindel yang sama, Anda tidak akan melihat perbedaan kinerja ...

Namun, jika rak NetApp yang Anda sebutkan menggunakan backplanes SAS 6Gbps atau 12Gbps versus 3Gbps lama, Anda mungkin akan melihat perubahan throughput untuk pergi ke peralatan yang lebih baru.

putih
sumber
Saya mengedit pertanyaan asli saya untuk menambahkan konteks. Angka yang saya pilih bukan dunia nyata, mereka hanya untuk membuat perhitungan hipotetis lebih mudah. Juga, sebagian besar komentar Anda yang lain termasuk dalam kolom "semuanya sama". Asumsikan bahwa satu - satunya hal yang berubah adalah kapasitas masing-masing disk
JDS
@ JDS Lihat hasil edit saya di atas.
ewwhite
9

Satu tempat di mana ada adalah hubungan langsung antara ukuran disk dan IOPS adalah di Amazon AWS Cloud dan "jasa berawan" lainnya. Dua jenis layanan AWS ( Elastic Block Store dan Relational Database Service ) memberikan IOPS yang lebih tinggi untuk ukuran disk yang lebih besar.

Perhatikan bahwa ini adalah pembatasan buatan yang dilakukan Amazon pada layanan mereka. Tidak ada alasan terikat perangkat keras untuk hal ini. Namun, saya telah melihat tipe devops yang tidak terbiasa dengan perangkat keras yang tidak bervirtual percaya bahwa pembatasan ini juga sesuai untuk sistem desktop dan sejenisnya. Hubungan ukuran disk / IOPS adalah pembatasan pemasaran cloud, bukan pembatasan perangkat keras.

dotancohen
sumber
1
Itu poin yang bagus. Kami melihat SLA kinerja untuk memberikan kinerja dan kapasitas kepada pelanggan. Dan kami sedang mempertimbangkan untuk menggunakan model 'iops per terabyte' berbasis tingkat - gagasannya adalah kita dapat menggunakannya untuk menginformasikan siklus peningkatan kami - membeli SSD jika rasio TIO: TB tinggi, dan SATA jika rendah. Bukan karena batasan array atau kendala, tetapi karena kita perlu memahami model biaya vs pengisian.
Sobrique
2
Menarik. Saya tidak memikirkan konteks mendung di sini. Saya kira itu menunjukkan dari mana perspektif saya berasal ...
ewwhite
4

Saya harus menunjukkan bahwa IOPS bukanlah pengukuran kecepatan yang hebat pada penulisan sekuensial, tetapi mari kita ikuti saja.

Saya menduga waktu mencari dan menulis kepala disk cukup konsisten meskipun ukuran disk. 20 tahun yang lalu kita semua menggunakan disk 60GB dengan (kurang lebih - tentu tidak linear) dengan kecepatan baca / tulis yang sama.

Saya membuat tebakan yang berpendidikan tetapi saya tidak berpikir bahwa kepadatan disk berhubungan secara linier dengan kinerja disk.

Misalnya, ambil array dengan disk 10 X 100GB.

Ukur IOPS untuk menulis blok 256kb berurutan (atau metrik IOPS lainnya)

Mari kita asumsikan IOPS yang diukur adalah 1000 IOPS.

baik

Ubah array untuk satu dengan disk 10 X 200GB. Format dengan konfigurasi RAID yang sama, ukuran blok yang sama, dll.

Apakah orang mengharapkan IOPS tetap sama, naik, atau turun?

Mungkin kira-kira tetap setara satu sama lain.

Apakah perubahannya akan linear?

Sejarah media pemintalan memberi tahu saya bahwa mungkin tidak ada hubungan.

Ulangi pertanyaan ini dengan disk 10 X 50GB

Sekali lagi, kira-kira setara.

Kecepatan Anda, dalam semua kasus ini berasal dari kenyataan bahwa RAID bertindak seperti satu disk tunggal dengan sepuluh kepala tulis, sehingga Anda dapat mengirim 1/10 dari pekerjaan secara paralel ke setiap disk.

Sementara saya tidak memiliki angka keras untuk menunjukkan kepada Anda, pengalaman masa lalu saya mengatakan kepada saya bahwa meningkatkan kinerja disk Anda tidak semudah mendapatkan kapasitas lebih.

Terlepas dari apa yang orang-orang pemasaran katakan kepada Anda adalah inovasi, sebelum dimulainya cakram solid state murah (er), hanya ada sedikit perkembangan signifikan dalam kinerja media pemintalan dalam 20 tahun terakhir, mungkin hanya ada begitu banyak yang dapat Anda peroleh dari karat. dan hanya begitu cepat kita bisa mendapatkan model kepala disk kita saat ini.

Matthew Ife
sumber
Mungkin ada beberapa perbaikan karena meningkatnya piring-piring di drive, atau meningkatkan kepadatan platter (lebih sedikit pergerakan per byte), tapi saya ragu itu besar.
Bill Weiss
Saya mengantisipasi apa yang Anda dapatkan dalam kepadatan yang Anda bayar dengan akurasi.
Matthew Ife
Anda memiliki 60GB disk pada tahun 1994 !?
warren
3

Kinerja ditambahkan ke skala penyimpanan dengan masing-masing spindle ditambahkan. Kecepatan rotasi drive adalah faktor terbesar, jadi menambahkan drive RPM 10k akan memberikan kinerja lebih (dalam hal IO / detik dalam IO acak atau MB / detik dalam streaming IO) daripada drive RPM 7,2k. Ukuran drive hampir tidak berpengaruh.

Orang mengatakan drive kecil berjalan lebih cepat hanya karena Anda membutuhkan lebih banyak spindle per TB yang dapat digunakan. Meningkatkan ukuran drive spindel tidak akan menurunkan kinerja, tetapi akan memungkinkan Anda untuk memuat lebih banyak data pada disk, yang dapat mengakibatkan peningkatan beban kerja.

Kemangi
sumber
2

Jika Anda menganggap semua yang lain sama, karakteristik kinerja disk dengan kapasitas lebih besar tidak banyak berubah. Drive 10K RPM FC memiliki karakteristik yang sangat mirip terlepas dari apakah itu 300GB atau 3TB. Piring-piring berputar pada kecepatan yang sama, dan kepala mencari pada kecepatan yang sama.

Throughput yang berkelanjutan juga - tidak banyak perbedaan. Ini adalah akar dari banyak masalah kinerja, karena, dalam banyak kasus, orang membeli terabyte, mereka tidak membeli IOP atau MB / detik.

Dan akan butuh 10x selama untuk membangun kembali / menyalin drive 3TB sebagai drive 300GB.

Kami sebenarnya harus melihat kelebihan kapasitas yang besar untuk proyek penyimpanan sebagai hasilnya - ukuran drive masih terus bertambah, tetapi kemampuan kinerja mereka tidak banyak. Jadi setidaknya dalam satu kasus, kami telah membeli ~ 400TB penyimpanan untuk memenuhi persyaratan 100TB, karena kami membutuhkan spindel.

Sobrique
sumber
0

Jika Anda memutar disk (bukan SSD) maka semua yang lain sama, kecepatan transfer lebih tinggi jika Anda menggunakan trek luar disk. Itu akan terjadi secara otomatis jika Anda menggunakan disk yang hanya diisi sebagian. Pada saat yang sama, jika disk hanya diisi sebagian, gerakan head rata-rata Anda akan lebih sedikit, dan jumlah gerakan head akan lebih sedikit karena ada lebih banyak data per track.

Itu benar apakah Anda menggunakan disk tunggal atau drive RAID.

Sekarang jika Anda membandingkan disk 100GB dan 2000GB, Anda dapat yakin bahwa yang lainnya tidak sama. Tetapi jika pabrikan yang sama menawarkan drive 500GB, 1TB, 1.5TB, dan 2TB dengan satu, dua, tiga, dan empat piringan, maka semua yang lain mungkin sama, dan 10 x 500GB akan lebih lambat dari 10 x 2TB untuk menyimpan data 4TB (tidak akan ada perbedaan jika Anda menyimpan 100 GB saja, karena drive 500 GB juga hampir kosong).

Tetapi untuk drive RAID, Anda tidak akan dibatasi oleh kecepatan transfer, tetapi oleh latensi rotasi. Jadi RPM yang lebih tinggi akan lebih penting. Dan Anda akan sering menemukan RPM yang lebih tinggi bersama dengan kapasitas yang lebih rendah. Di sisi lain, jika Anda menggunakan RPM tinggi / kapasitas rendah, maka Anda mungkin juga melihat drive SSD.

gnasher729
sumber