Pada titik mana penggunaan EBS menjadi hambatan?

10

Saya memiliki situs yang dihosting di Amazon menggunakan instance EC2 yang didukung oleh volume EBS. Pada akhir pekan, lonjakan lalu lintas dan saya membuat contoh lebih besar yang membantu sedikit - saya tidak lagi melihat penggunaan CPU melonjak hingga 100% dan server menjadi tidak responsif.

Namun, saya perhatikan bahwa pembacaan disk juga sangat tinggi (tidak dapat membantu, saya tidak berpikir) dan saya bertanya-tanya, pada titik mana saya akan melihat semacam kegagalan karena disk tidak dapat menyimpan naik?

Seperti yang dapat Anda lihat dari tangkapan layar terlampir, itu mencapai 80MB / menit selama akhir pekan. Apakah ada yang punya pengalaman dengan AWS dan tahu pada titik mana saya harus pindah ke instance multi-load seimbang karena EBS menjadi hambatan?

Grafik Penggunaan EBS

ESW
sumber
2
Saya pikir kita perlu beberapa detail lapisan aplikasi di sini. Apa aktivitas membaca disk? Akses acak untuk gambar / aset? Pembacaan berurutan besar (mis. Cadangan basis data atau analitik)? Perhatikan bahwa Anda dapat menjalankan beberapa volume EBS yang dilampirkan pada sebuah instance tunggal yang melakukan perangkat lunak RAID-0 untuk memperbaiki keadaan.
rmalayter
kebanyakan dari mereka membaca file yang lebih kecil (kurang dari 1MB, banyak kurang dari 500k) tetapi bukan file "kecil". Saya tidak tahu apakah ini adalah beban untuk volume EBS atau jika jumlah lalu lintas ini adalah trival - dan tidak tahu bagaimana cara mengetahuinya.
ESW
Saya baru saja menulis balasan yang menampilkan RAID dan EBS ketika saya membaca komentar Anda, malayter. Saya akan menambahkan bahwa RAID10 mungkin solusi yang lebih fleksibel, karena harus meningkatkan membaca DAN menulis.
tsykoduk
@tsykoduk Secara umum, semua jenis penyimpanan AWS memiliki kinerja yang agak tidak jelas dan meskipun tampaknya RAID10 dapat meningkatkan kinerja, lebih baik untuk mencoba membuat tolok ukur dengan jenis pola akses dan memuat yang cenderung dialami aplikasi nyata Anda. . Bahkan saat itu kinerja Anda cenderung sangat bervariasi di lingkungan AWS dibandingkan dengan solusi yang di-hosting-sendiri di mana Anda memiliki lebih banyak kontrol - dan dengan demikian lebih dapat diprediksi - atas kinerja penyimpanan. Secara umum, memiliki lebih dari satu volume dalam konfigurasi RAID kemungkinan akan berdampak positif.
aculich

Jawaban:

5

Hal pertama yang perlu diingat yang akan berdampak paling besar pada kinerja I / O Anda adalah tipe instance yang Anda gunakan.

Instance Type   I/O Performance
-------------   ---------------
t1.micro        Low
m1.small        Moderate
m2.xlarge       Moderate
c1.medium       Moderate
m1.large        High
m1.xlarge       High
m2.2xlarge      High
m2.4xlarge      High
c1.xlarge       High
cc1.4xlarge     Very High (10 Gigabit Ethernet)
cc2.8xlarge     Very High (10 Gigabit Ethernet)
cg1.4xlarge     Very High (10 Gigabit Ethernet)

Sedangkan untuk volume EBS dan kinerja yang akan Anda dapatkan, seperti yang disarankan AWS FAQ , Anda harus membuat tolok ukur aplikasi Anda untuk melihat apa yang diharapkan:

T: Tingkat latensi dan throughput seperti apa yang dapat saya harapkan dari volume EBS Amazon? Latensi dari instance Amazon EC2 ke volume Amazon EBS mirip dengan latensi yang akan Anda lihat dari drive penyimpanan instance Amazon EC2 lokal. Tingkat I / O dapat bervariasi secara signifikan berdasarkan ukuran permintaan, keacakan pola akses, dan strategi caching yang digunakan oleh aplikasi. Dengan demikian, ukuran paling akurat adalah membandingkan aplikasi spesifik Anda pada volume Amazon EBS.

Artinya, tarif EBS yang Anda peroleh banyak tidak selalu lebih buruk atau lebih baik daripada penyimpanan instance lokal; itu sangat tergantung pada perilaku akses data Anda.

Info lebih lanjut ada di halaman AWS EBS :

Performa Volume EBS Amazon

Volume Amazon EBS dirancang untuk menawarkan throughput yang lebih tinggi daripada toko instance Amazon EC2 untuk aplikasi yang melakukan banyak akses acak di set data Anda. Anda juga dapat melampirkan banyak volume ke instance dan strip di volume untuk mencapai peningkatan throughput lebih lanjut.

Kinerja pasti akan tergantung pada aplikasi (mis. I / O acak vs berurutan atau ukuran permintaan besar vs kecil), jadi ukuran terbaik adalah dengan membandingkan aplikasi nyata Anda dengan volume. Karena volume EBS Amazon memerlukan akses jaringan, Anda akan melihat kinerja throughput yang lebih cepat dan lebih konsisten dengan mesin virtual yang lebih besar.

Juga perlu diingat bahwa kinerja I / O tidak hanya mencakup IO disk, tetapi juga lalu lintas jaringan ... jadi, semakin banyak lalu lintas jaringan yang Anda miliki, semakin sedikit IO disk yang akan Anda peroleh.

Tergantung pada apa yang Anda suguhkan, cache objek dalam memori dapat sangat membantu jika itu mungkin untuk jenis aplikasi Anda.

Juga, berikut adalah beberapa posting blog yang membandingkan kinerja EBS dan volume lokal (ephemeral) dalam berbagai konfigurasi RAID dan penyesuaian untuk mendapatkan kinerja IO yang baik:

EC2 Ephemeral Disk vs Volume EBS di RAID

Performa I / O Amazon EC2: Disk Ephemeral Lokal vs. RAID 0 Striped EBS Volumes

Mendapatkan IO yang Baik dari EBS Amazon

aculich
sumber
2
Situs ini tampaknya memiliki informasi yang bagus juga: ec2instances.info
Gianfranco P.