I/O Karakteristik dan pemantauan Amazon EBS - Amazon EBS

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

I/O Karakteristik dan pemantauan Amazon EBS

Pada konfigurasi volume tertentu, I/O karakteristik tertentu mendorong perilaku kinerja untuk volume EBS Anda.

  • Volume yang didukung SSD, General Purpose SSD (gp2dangp3) dan Provisioned IOPS SSD (io1danio2), memberikan kinerja yang konsisten baik I/O operasi acak atau berurutan.

  • Volume yang didukung HDD, Throughput Optimized HDD (st1) dan Cold HDD (sc1), memberikan kinerja optimal hanya ketika I/O operasi besar dan berurutan.

Untuk memahami bagaimana kinerja volume SSD dan HDD dalam aplikasi Anda, penting untuk mengetahui hubungan antara permintaan pada volume, jumlah IOPS yang tersedia untuknya, waktu yang dibutuhkan untuk menyelesaikan I/O operasi, dan batas throughput volume.

IOPS

IOPS adalah satuan ukuran yang mewakili input/output operasi per detik. Operasi diukur dalam KiB, dan teknologi drive yang mendasarinya menentukan jumlah maksimum data yang dihitung oleh tipe volume sebagai satu yang I/O. I/O size is capped at 256 KiB for SSD volumes and 1,024 KiB for HDD volumes because SSD volumes handle small or random I/O jauh lebih efisien daripada volume HDD.

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

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

Akibatnya, ketika Anda membuat volume yang didukung SSD yang mendukung 3.000 IOPS (baik dengan menyediakan io1 atau io2 volume dengan 3.000 IOPS, dengan mengukur volume pada 1.000 GiB, atau dengan menggunakan gp2 volume), dan Anda melampirkannya ke instans gp3 yang dioptimalkan EBS yang dapat menyediakan bandwidth yang cukup, Anda dapat mentransfer hingga I/Os 3.000 data per detik, dengan throughput ditentukan berdasarkan ukuran. I/O

Panjang antrean volume dan latensi

Panjang antrian volume adalah jumlah I/O permintaan yang tertunda untuk perangkat. Latensi adalah waktu end-to-end klien sebenarnya dari suatu I/O operasi, dengan kata lain, waktu yang berlalu antara mengirim I/O ke EBS dan menerima pengakuan dari EBS bahwa membaca atau menulis telah selesai. I/O Panjang antrian harus dikalibrasi dengan benar dengan I/O ukuran dan latensi untuk menghindari terjadinya kemacetan baik 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 memberikan I/O permintaan yang cukup untuk sepenuhnya menggunakan kinerja yang tersedia untuk volume EBS Anda, maka volume Anda mungkin tidak memberikan IOPS atau throughput yang telah Anda sediakan.

Aplikasi intensif transaksi sensitif terhadap peningkatan I/O latensi 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. Secara konsisten mendorong lebih banyak IOPS ke volume daripada yang tersedia dapat menyebabkan peningkatan I/O latensi.

Aplikasi throughput-intensif kurang sensitif terhadap peningkatan I/O latensi, 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 I/O ukuran Anda sangat besar, Anda mungkin mengalami jumlah IOPS yang lebih kecil daripada yang Anda sediakan karena Anda mencapai batas throughput volume. Misalnya, gp2 volume di bawah 1.000 GiB dengan kredit burst yang tersedia memiliki batas IOPS 3.000 dan batas throughput volume 250 MiB/s. If you are using a 256 KiB I/O size, your volume reaches its throughput limit at 1000 IOPS (1000 x 256 KiB = 250 MiB). For smaller I/O sizes (such as 16 KiB), this same volume can sustain 3,000 IOPS because the throughput is well below 250 MiB/s. (These examples assume that your volume's I/O tidak mencapai batas throughput instans.) Untuk informasi selengkapnya tentang batas throughput untuk setiap tipe volume EBS, lihat Tipe volume Amazon EBS.

Untuk I/O operasi 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 sekuensial I/Os pada HDD st1 dan sc1 volume yang didukung, Anda mungkin mengalami jumlah IOPS yang lebih tinggi dari yang diharapkan yang diukur dari dalam instans Anda. Ini terjadi ketika sistem operasi instance menggabungkan sekuensial I/Os dan menghitungnya dalam 1.024 unit berukuran KIB. Jika beban kerja Anda menggunakan kecil atau acak I/Os, you may experience a lower throughput than you expect. This is because we count each random, non-sequential I/O terhadap jumlah IOPS total, yang dapat menyebabkan Anda mencapai batas IOPS volume lebih cepat dari yang diharapkan.

Apa pun jenis volume EBS Anda, jika Anda tidak mengalami IOPS atau throughput yang Anda harapkan dalam konfigurasi, pastikan bandwidth EC2 instans Anda bukan faktor pembatas. Anda harus selalu menggunakan instance generasi saat ini yang dioptimalkan EBS (atau yang mencakup 10 konektivitas Gb/s jaringan) untuk kinerja yang optimal. Kemungkinan penyebab lain untuk tidak mengalami IOPS yang diharapkan adalah Anda tidak cukup mengemudi I/O ke volume EBS.

I/O Karakteristik monitor menggunakan CloudWatch

Anda dapat memantau I/O karakteristik ini dengan metrik volume masing-masing CloudWatch volume.

Monitor untuk I/O yang macet

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 I/O operasi atau tidak.

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.

Pantau I/O latensi untuk volume

Anda dapat memantau latensi rata-rata untuk operasi baca dan tulis untuk volume Amazon EBS masing-masing menggunakan VolumeAvgWriteLatency metrik VolumeAvgReadLatency dan metrik.

Jika I/O latensi Anda lebih tinggi dari yang Anda butuhkan, pastikan aplikasi Anda tidak mencoba untuk mendorong lebih banyak IOPS atau throughput daripada yang telah Anda sediakan untuk volume Anda. Gunakan rumus berikut untuk menghitung IOPS rata-rata dan throughput yang didorong ke volume Anda selama periode tertentu, lalu bandingkan dengan IOPS dan throughput yang disediakan volume.

Sum(VolumeReadOps) + Sum(VolumeWriteOps) Estimated average IOPS in ops/s = ---------------------------------------- Period - Sum(VolumeIdleTime)
(Sum(VolumeReadBytes) + Sum(VolumeWriteBytes)) / 1024 Estimated average throughput in KiB/s = ----------------------------------------------------- Period - Sum(VolumeIdleTime)

Anda juga dapat memantau VolumeIOPSExceededCheck dan VolumeThroughputExceededCheck metrik untuk menentukan apakah beban kerja Anda secara konsisten mencoba mendorong IOPS atau throughput yang lebih besar dari kinerja yang disediakan volume pada menit tertentu. Jika IOPS yang digerakkan secara konsisten melebihi kinerja IOPS yang disediakan volume Anda, metrik akan kembali. VolumeIOPSExceededCheck 1 Jika throughput yang digerakkan secara konsisten melebihi performa throughput yang disediakan volume Anda, metrik akan kembali. VolumeThroughputExceededCheck 1 Jika IOPS dan throughput yang digerakkan berada dalam performa yang disediakan volume Anda, metrik akan kembali. 0

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

Didukung HDD st1 dan sc1 volume dirancang untuk berkinerja terbaik dengan beban kerja yang memanfaatkan ukuran maksimum 1.024 KiB. I/O Untuk menentukan I/O ukuran rata-rata volume Anda, bagi VolumeWriteBytes denganVolumeWriteOps. Penghitungan yang sama berlaku untuk membaca operasi. Jika I/O ukuran rata-rata di bawah 64 KiB, meningkatkan ukuran I/O operasi yang dikirim ke sc1 volume st1 atau harus meningkatkan kinerja.

Pantau keseimbangan burst bucket untukgp2,st1, dan sc1 volume

BurstBalance menampilkan saldo bucket lonjakan untuk volume gp2, st1, dan sc1 sebagai persentase dari saldo yang tersisa. Saat bucket burst Anda habis, volume I/O (untuk gp2 volume) atau throughput volume (untuk st1 dan sc1 volume) dibatasi ke baseline. 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.

Pantau statistik I/O kinerja waktu nyata

Anda dapat mengakses statistik performa terperinci real-time untuk volume Amazon EBS yang dilampirkan ke instans Amazon EC2 berbasis Nitro.

Anda dapat menggabungkan statistik ini untuk mendapatkan latensi rata-rata dan IOPS, atau untuk memeriksa apakah I/O operasi selesai. Anda juga dapat melihat jumlah total waktu aplikasi Anda telah melebihi volume EBS atau IOPS atau batas throughput yang disediakan instans terlampir. Dengan melacak peningkatan statistik ini dari waktu ke waktu, Anda dapat mengidentifikasi apakah Anda perlu meningkatkan IOPS yang disediakan atau batas throughput untuk mengoptimalkan kinerja aplikasi Anda. Statistik kinerja terperinci juga mencakup histogram untuk I/O operasi baca dan tulis, yang menyediakan distribusi I/O latensi Anda dengan melacak jumlah total I/O operasi yang diselesaikan dalam pita latensi.

Untuk informasi selengkapnya, lihat Amazon EBS statistik kinerja terperinci.

Sumber daya terkait

Untuk informasi selengkapnya tentang I/O karakteristik Amazon EBS, lihat presentasi re:Invent berikut: Amazon EBS: Designing for Performance.