Karakteristik dan pemantauan Amazon EBS I/O - Amazon EBS

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Karakteristik dan pemantauan Amazon EBS I/O

Pada konfigurasi volume tertentu, karakteristik I/O tertentu mendorong perilaku performa untuk volume EBS Anda. Volume yang didukung SSD—SSD Tujuan Umum (gp2 dan gp3) dan SSD IOPS yang Tersedia (io1 dan io2)—memberikan performa yang konsisten baik operasi I/O acak atau berurutan. Volume yang didukung HDD—HDD Throughput Dioptimalkan (st1) dan Cold HDD (sc1)—memberikan performa yang optimal hanya ketika operasi I/O berukuran besar dan berurutan. Untuk memahami cara volume SSD dan HDD akan berjalan di dalam aplikasi Anda, penting untuk mengetahui koneksi antara permintaan volume, jumlah IOPS yang tersedia, waktu yang dibutuhkan untuk penyelesaian operasi I/O, dan batas throughput volume.

IOPS

IOPS adalah unit pengukuran yang mewakili operasi input/output per detik. Operasi diukur dalam KiB, dan teknologi drive yang mendasarinya menentukan jumlah maksimum data yang dihitung dari tipe volumenya sebagai I/O tunggal. Ukuran I/O dibatasi pada 256 KiB untuk volume SSD dan 1.024 KiB untuk volume HDD karena volume SSD menangani I/O kecil atau acak dengan jauh lebih efisien dibandingkan volume HDD.

Ketika operasi I/O kecil berurutan secara fisik, Amazon EBS mencoba menggabungkannya ke dalam operasi I/O tunggal hingga ukuran I/O maksimum. Demikian pula, ketika operasi I/O lebih besar dari ukuran I/O maksimum, Amazon EBS mencoba untuk membaginya ke dalam operasi I/O yang lebih kecil. Tabel berikut menunjukkan beberapa contoh.

Tipe volume Ukuran I/O maksimum Operasi I/O dari aplikasi Anda Jumlah IOPS Catatan
SSD 256 KiB Operasi I/O 1 x 1024 KiB 4 (1.024÷256=4) Amazon EBS membagi 1.024 operasi I/O menjadi empat operasi berukuran 256 KiB yang lebih kecil.
8 x 32 KiB operasi I/O berurutan 1 (8x32=256) Amazon EBS menggabungkan delapan operasi I/O berurutan berukuran 32 KiB menjadi 256 operasi KiB tunggal.
8 acak 32 KiB operasi I/O 8 Amazon EBS menghitung operasi I/O acak secara terpisah.
HDD 1.024 KiB Operasi I/O 1 x 1024 KiB 1 Operasi I/O sudah sama dengan ukuran I/O maksimum. Hal ini tidak digabung atau dibagi.
8 x 128 KiB operasi I/O berurutan 1 (8x128=1.024) Amazon EBS menggabungkan delapan operasi I/O berurutan berukuran 128 KiB menjadi 1.024 operasi I/O KiB tunggal.
8 acak 32 KiB operasi I/O 8 Amazon EBS menghitung operasi I/O acak secara terpisah.

Akibatnya, ketika Anda membuat volume yang didukung SSD yang mendukung 3.000 IOPS (baik dengan menyediakan volume SSD IOPS yang Tersedia pada 3.000 IOPS atau dengan menskalakan volume SSD Tujuan Umum sebesar 1.000 GiB), dan Anda memasanganya ke instans yang dioptimalkan EBS yang dapat menyediakan cukup bandwidth, Anda dapat mentransfer hingga 3.000 I/O data per detik, dengan throughput ditentukan oleh ukuran I/O.

Panjang antrean volume dan latensi

Panjang antrean volume adalah jumlah permintaan I/O tertunda untuk perangkat. Latensi adalah waktu end-to-end klien sebenarnya dari operasi I/O, dengan kata lain, waktu yang berlalu antara mengirim I/O ke EBS dan menerima pengakuan dari EBS bahwa I/O membaca atau menulis selesai. Panjang antrean harus dikalibrasi dengan benar pada ukuran dan latensi I/O untuk menghindari timbulnya kemacetan pada sistem operasi tamu atau pada tautan jaringan ke EBS.

Lama antrean yang optimal bervariasi untuk setiap beban kerja, tergantung pada sensitivitas aplikasi tertentu Anda terhadap IOPS dan latensi. Jika beban kerja Anda tidak cukup memenuhi permintaan I/O untuk sepenuhnya menggunakan performa yang tersedia bagi volume EBS Anda, volume Anda mungkin tidak dapat mencapai IOPS atau throughput yang telah Anda sediakan.

Aplikasi intensif transaksi bersifat peka terhadap latensi I/O yang meningkat dan sangat cocok untuk volume yang didukung SSD. Anda dapat mempertahankan IOPS yang tinggi sekaligus menjaga latensi tetap rendah dengan mempertahankan panjang antrean yang rendah dan sejumlah besar IOPS yang tersedia untuk volume. Mendorong lebih banyak IOPS ke volume dibandingkan yang tersedia dapat menyebabkan peningkatan latensi I/O.

Aplikasi dengan throughput tinggi kurang sensitif terhadap peningkatan latensi I/O, dan sangat cocok untuk volume yang didukung HDD. Anda dapat mempertahankan throughput yang tinggi ke volume yang didukung HDD dengan mempertahankan panjang antrean yang tinggi ketika melakukan I/O besar yang berurutan.

Ukuran I/O dan batas throughput volume

Untuk volume yang didukung SSD, jika ukuran I/O Anda sangat besar, Anda dapat mengalami jumlah IOPS yang lebih kecil daripada yang Anda sediakan karena Anda mencapai batas throughput volume. Misalnya, volume gp2 di bawah 1.000 GiB dengan kredit lonjakan tersedia memiliki batas IOPS sebesar 3.000 dan batas throughput volume 250 MiB/dtk. Jika Anda menggunakan Ukuran I/O 256 KiB, volume Anda mencapai batas throughput pada 1000 IOPS (1000 x 256 KiB = 250 MiB). Untuk ukuran I/O yang lebih kecil (seperti 16 KiB), volume yang sama dapat mempertahankan 3.000 IOPS karena throughput jauh di bawah 250 MiB/dtk. (Contoh ini mengasumsikan bahwa I/O volume Anda tidak menyentuh batas throughput dari instans.) Untuk informasi selengkapnya tentang batas throughput untuk setiap tipe volume EBS, lihat Tipe volume Amazon EBS.

Untuk operasi I/O yang lebih kecil, Anda mungkin melihat nilai higher-than-provisioned IOPS yang diukur dari dalam instance Anda. Hal ini terjadi saat sistem operasi instans menggabungkan operasi I/O kecil ke dalam operasi yang lebih besar sebelum meneruskannya ke Amazon EBS.

Jika beban kerja Anda menggunakan I/O berurutan pada volume st1 dan sc1 yang didukung HDD, Anda mungkin mengalami jumlah IOPS yang lebih tinggi dari yang diharapkan, yang diukur dari dalam instans Anda. Hal ini terjadi ketika sistem operasi instans menggabungkan I/O berurutan dan menghitungnya di 1.024 unit berukuran KiB. Jika beban kerja Anda menggunakan I/O yang kecil atau acak, Anda dapat mengalami throughput yang lebih rendah dari yang Anda harapkan. Hal ini karena kami menghitung I/O acak tidak berurutan untuk total jumlah IOPS, yang dapat menyebabkan Anda mencapai batas IOPD volume dengan cepat dari yang diharapkan.

Apa pun tipe volume EBS Anda, jika Anda tidak mengalami IOPS atau throughput yang Anda harapkan dalam konfigurasi, pastikan bahwa bandwidth instans EC2 Anda tidak menjadi faktor pembatas. Anda harus selalu menggunakan instans yang dioptimalkan EBS generasi saat ini (atau yang mencakup hubungan jaringan sebesar 10 Gb/dtk) untuk performa yang optimal. Penyebab lain yang mungkin terjadi karena tidak mengalami IOPS yang diharapkan adalah Anda tidak mendorong cukup I/O ke volume EBS.

Pantau karakteristik I/O menggunakan CloudWatch

Anda dapat memantau karakteristik I/O ini dengan metrik volume masing-masing CloudWatch volume. Metrik penting yang perlu dipertimbangkan meliputi hal berikut:

  • VolumeStalledIOCheck

  • BurstBalance

  • VolumeReadBytes | VolumeWriteBytes

  • VolumeReadOps | VolumeWriteOps

  • VolumeQueueLength

VolumeStalledIOCheck memantau status volume EBS Anda untuk menentukan kapan volume Anda terganggu. Metrik adalah nilai biner yang akan mengembalikan status 0 (lulus) atau 1 (gagal) berdasarkan apakah volume EBS dapat menyelesaikan operasi I/O atau tidak. Pemeriksaan ini mendeteksi masalah mendasar dengan infrastruktur Amazon EBS, seperti berikut ini:

  • Masalah perangkat keras atau perangkat lunak pada subsistem penyimpanan yang mendasari volume EBS

  • Masalah perangkat keras pada host fisik yang memengaruhi jangkauan volume EBS dari instans EC2

  • Masalah konektivitas antara instans dan volume EBS

Jika VolumeStalledIOCheck metrik gagal, Anda dapat menunggu AWS untuk menyelesaikan masalah, atau Anda dapat mengambil tindakan, seperti mengganti volume yang terpengaruh atau menghentikan dan memulai ulang instance tempat volume dilampirkan. Dalam kebanyakan kasus, ketika metrik ini gagal, EBS akan secara otomatis mendiagnosis dan memulihkan volume Anda dalam beberapa menit. Anda dapat menggunakan aksi Jeda I/O AWS Fault Injection Service untuk menjalankan eksperimen terkontrol untuk menguji arsitektur dan pemantauan Anda berdasarkan metrik ini untuk meningkatkan ketahanan Anda terhadap kesalahan penyimpanan.

Anda dapat mengukur latensi I/O penyimpanan Amazon EBS menggunakan VolumeReadOps, VolumeWriteOps, VolumeTotalReadTime dan VolumeTotalWriteTime. Anda dapat menggunakan rumus berikut untuk memantau latensi I/O rata-rata volume Anda:

Average I/O latency in ms/op = (VolumeTotalReadTime + VolumeTotalWriteTime) / (VolumeReadOps + VolumeWriteOps)

Jika latensi I/O Anda lebih tinggi dari yang Anda butuhkan, periksa IOPS Anda dan pastikan bahwa aplikasi Anda tidak mencoba untuk mendorong lebih banyak IOPS daripada yang Anda sediakan. Anda dapat menggunakan rumus berikut untuk memantau rata-rata IOPS yang didorong pada volume:

Estimated average IOPS in ops/s = (Sum(VolumeReadOps) + Sum(VolumeWriteOps)) / (Period - Sum(VolumeIdleTime))

Jika aplikasi Anda membutuhkan jumlah IOPS yang lebih besar daripada yang dapat diberikan volume, Anda harus mempertimbangkan untuk menggunakan salah satu dari berikut ini:

  • Volume gp3, io2, atau io1 yang disediakan dengan IOPS yang cukup untuk mencapai latensi yang diperlukan

  • Volume gp2 yang lebih besar yang memberikan performa IOPS dasar yang cukup

Volume st1 dan sc1 yang didukung HDD dirancang untuk melakukan beban kerja terbaik yang memanfaatkan ukuran I/O maksimum 1.024 KiB. Untuk menentukan ukuran I/O rata-rata volume Anda, bagi VolumeWriteBytes dengan VolumeWriteOps. Penghitungan yang sama berlaku untuk membaca operasi. Jika ukuran I/O rata-rata di bawah 64 KiB, menambah ukuran operasi I/O yang dikirim ke volume st1 atau sc1 akan meningkatkan performa.

catatan

Jika ukuran I/O rata-rata Anda berada pada atau mendekati 44 KiB, Anda dapat menggunakan instans atau kernel tanpa dukungan deskriptor tidak langsung. Setiap kernel 3.8 Linux dan di atasnya memiliki dukungan ini, serta setiap instans generasi saat ini.

BurstBalance menampilkan saldo bucket lonjakan untuk volume gp2, st1, dan sc1 sebagai persentase dari saldo yang tersisa. Saat bucket lonjakan Anda habis, I/O volume (untuk volume gp2) atau throughput volume (untuk volume st1 dan sc1) dibatasi sesuai acuan. Periksa nilai BurstBalance untuk menentukan apakah volume Anda dipacu karena alasan ini. Untuk daftar lengkap metrik Amazon EBS yang tersedia, lihat dan metrik CloudWatch Metrik Amazon untuk Amazon EBS Amazon EBS untuk instans berbasis Nitro.

Sumber daya terkait

Untuk informasi selengkapnya tentang karakteristik I/O Amazon EBS, lihat presentasi re:Invent berikut ini: Amazon EBS: Merancang Performa.