Saya ingin tahu tentang IOPS (I / O Per Second) dan Bagaimana pengaruhnya terhadap operasi DB CRUD


8

Saya ingin mendapatkan server khusus untuk Database (MySQL) saya yang menjalankan InnoDB Engine. Ada opsi ini dalam kapasitas InnoDB yang dapat Anda tentukan IOPS di dalamnya. Katakanlah saya memiliki HDD SATA 72K-RPM yang memungkinkan 100 IOPS. Apakah itu berarti bahwa DB saya dapat menjalankan 100 query SQL bersamaan hanya per detik atau itu berarti 100 tunggal Baca atau Tulis dalam 1 detik? Bagaimana DB dapat menangani 3000 kueri per detik diluncurkan pada Perangkat Keras seperti itu? Saya agak bingung jadi tolong jelaskan untuk saya. Saya ingin mendapatkan lebih dari 200 eksekusi permintaan di server khusus saya.

Jawaban:


10

IOPS hard drive memberi tahu Anda berapa banyak operasi I / O yang dapat dilakukan drive tertentu per detik. Karena pembacaan acak, penulisan acak, pembacaan berurutan, dan penulisan berurutan memiliki karakteristik kinerja yang berbeda, jika Anda melihat angka tunggal, itu menyiratkan bahwa ini adalah rata-rata tertimbang dari keempat angka ini yang mewakili beberapa beban kerja. Beban kerja itu mungkin atau mungkin tidak sama dengan beban kerja yang sebenarnya dilakukan oleh suatu basis data sehingga sistem Anda bisa mendapatkan lebih banyak atau lebih sedikit operasi per detik.

Permintaan SQL akan, dengan asumsi itu I / O fisik (banyak pertanyaan tidak perlu melakukan I / O karena mereka hanya membaca dari data yang sudah ada dalam memori database atau dalam cache sistem file atau dalam cache SAN), cenderung untuk melakukan banyak operasi I / O. Jika pertanyaan Anda benar-benar melakukan I / O fisik, satu permintaan dapat dengan mudah melakukan 100 operasi I / O per detik. Anda dapat berpotensi menjalankan 100 kueri secara bersamaan, masing-masing hanya dapat melakukan 1 operasi I / O fisik per detik, tetapi itu mungkin berarti bahwa semua 100 kueri akan membutuhkan waktu yang tidak dapat diterima untuk kembali.

Secara realistis, jika Anda perlu menangani 3000 kueri per detik, Anda harus memastikan bahwa sebagian besar kueri Anda tidak perlu melakukan I / O fisik dengan memastikan bahwa data yang mereka butuhkan di-cache (lebih disukai oleh database). Dan Anda harus menyebarkan I / O pada jumlah drive yang relatif besar (dengan konfigurasi RAID yang sesuai) untuk meningkatkan total IOPS yang dapat dilakukan sistem. Perencanaan kapasitas semacam ini akan membutuhkan pemahaman yang cukup baik tentang aplikasi Anda, data Anda, berapa banyak I / O setiap permintaan yang mungkin sangat dibutuhkan, dll. Dan Anda mungkin perlu menyeimbangkan biaya vs kinerja - menambahkan memori atau menambah drive atau mengubah konfigurasi RAID akan melibatkan pengorbanan yang berbeda antara biaya, kinerja, dan ruang yang tersedia yang harus dipertimbangkan.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.