Amazon RDS: Apa Permintaan IO?

9

Saya punya contoh RDS yang menghabiskan banyak uang. Dari aktivitas akun saya di amazon saya melihat bahwa instance telah memiliki sekitar 800.000.000 permintaan IO selama 7 hari terakhir.

Untuk memberi Anda sedikit perspektif, aplikasi saya hanya mendapat sekitar 6.000 kunjungan unik sehari dan itu tidak membuat banyak koneksi basis data.

Jadi, apa sebenarnya Permintaan IO, dan mengapa angka itu begitu tinggi? Saya bersedia melakukan apa pun untuk aplikasi saya untuk mengurangi biaya itu jika perlu, tetapi saya tidak yakin apa yang sebenarnya terjadi.

Saya akan menghargai pikiran Anda.

Abe
sumber
Apakah Anda menemukan solusi dalam kasus Anda?
Klik Suara positif

Jawaban:

6

Ah, Layanan Web Amazon. Salah satu moneysink terbesar yang tersedia. Sangat bagus, tetapi tidak selalu murah. Sebenarnya, hampir tidak pernah murah, dan selalu sulit untuk memperkirakan pengeluaran.

Permintaan IO adalah operasi disk. Baik itu membaca, atau menulis, Anda pada dasarnya ditagih dengan berapa banyak data yang Anda dapatkan dari sistem mereka. Ini gila.

Anda dapat memperkirakan Permintaan IO yang Anda buat, dengan melihat iostat.

800.000.000 IOrequests dalam 7 hari .. Itu ~ = 1300 IOPS. Wow. Itu beberapa kinerja jahat.

Sebagai contoh, database situs web berukuran sedang mungkin berukuran 100 GB dan diperkirakan rata-rata 100 I / Os per detik selama sebulan. Ini akan diterjemahkan menjadi $ 10 per bulan dalam biaya penyimpanan (100 GB x $ 0,10 / bulan), dan sekitar $ 26 per bulan dalam biaya permintaan (~ 2,6 juta detik / bulan x 100 I / O per detik * $ 0,10 per juta I / O).

Dari http://aws.amazon.com/ebs/ sekitar 90% dari jalan ke bawah halaman

Jika Anda benar-benar ingin mengurangi biaya ini, mungkin ini saatnya untuk melihat apakah RDS paling cocok untuk aplikasi dan anggaran proyek Anda.

Jika Anda hanya mendapat hit 6k sehari, Anda mungkin lebih baik dalam hal biaya dan kinerja dengan dedicated server (lebih disukai 2 em, satu untuk DB, satu untuk layanan web). Sebenarnya sedikit lebih sulit untuk melakukan panggilan itu karena Anda tidak mengatakan terlalu banyak tentang aplikasi Anda.

Tom O'Connor
sumber
3
Ketika saya pertama kali bereksperimen dengan layanan SimpleDB AWS, yang merupakan sesuatu seperti MongoDB, saya menghabiskan tagihan $ 50 dalam satu sore. Nyaman, tetapi hampir tidak pernah murah.
Tom O'Connor
Saya kira EBS tidak dapat lagi alasan saya melihat biaya ini dalam tagihan saya, "Saya / O sudah termasuk dalam harga volume, jadi Anda hanya membayar untuk setiap GB penyimpanan yang Anda berikan." (dari halaman penetapan harga )?
hayd
Huh, ternyata masih tersedia di generasi sebelumnya !
hayd
6

Saya punya contoh RDS yang menghabiskan banyak uang.

"Layanan cloud" tidak berarti bahwa barang akan dikenakan biaya uang Anda. Pada dasarnya, permintaan I / O adalah apa saja (yaitu database atau halaman indeks) yang perlu diambil dari disk. Jika Anda memiliki database besar dan permintaan menggunakan scan tabel penuh, ini tidak berarti mengejutkan. Anda dapat mempertimbangkan mencari kueri menggunakan kolom tidak indeks untuk memfilter dengan mengaktifkan opsi untuk mencatat kueri "tidak indeks" ke log lambat MySQL dan menambahkan indeks untuk kolom yang sesuai. Karena Anda tidak memiliki opsi untuk mengedit file konfigurasi secara langsung, gunakan konfigurasi grup parameter RDS untuk mengatur log-queries-not-using-indexesdan meminta mysql.slow_logtabel untuk entri log.

Juga, pertimbangkan untuk menjalankan skrip primer penyetelan MySQL dari instance AWS Anda terhadap instance database untuk analisis kinerja umum untuk melihat apakah instance yang lebih besar akan membantu masalah karena jumlah memori yang lebih besar yang tersedia untuk caching, mengurangi beban pada disk. Script mengevaluasi sejumlah parameter konfigurasi dan penghitung kinerja untuk memberikan beberapa informasi tentang kemungkinan kemacetan dan memberikan beberapa rekomendasi umum.

the-wabbit
sumber
5
Ini adalah hal yang luar biasa betapa mudahnya kita manusia secara tidak sengaja dapat membuat komputer melakukan pekerjaan yang sangat besar. Anda selalu harus kembali dan mengukur untuk memastikan Anda tidak secara tidak sengaja memaksa mesin untuk melakukan sesuatu yang sangat bodoh. (Saya pernah meningkatkan kinerja sistem dunia nyata yang dikerahkan sebesar 40% dalam waktu kurang dari sepuluh menit (tidak menghitung waktu untuk menyiapkan bangunan yang diprofilkan) dengan menambahkan satu &ke kodenya. Jelas, tidak ada yang pernah membuat profilnya.)
David Schwartz