AWS RDS veritabanım için kaç GÇ'ye ihtiyacım olduğunu nasıl belirleyebilirim?


14

Bir mysql veritabanının bir bölümünü AWS'ye geçiriyorum. Söz konusu veriler% 99 yazmadır ve her satırda yaklaşık 1k varchar alanı, bir datetime ve 4 ints bulunur.

Yoğun zamanlarda saat başına 20-25 bin kayıt ekleneceğine inanıyorum.

Mevcut veritabanında iostat -h komutunu çalıştırdım ve yaklaşık 40 tps bildirdi.

Ne tür IOPS'a ihtiyacım olacağını nasıl anlayabilirim?

Yanıtlar:


11

Test etmeniz gerekecek.

Ekleme başına G / Ç sayısını yaklaşık olarak hesaplamak için zarf hesaplamalarının bir kısmını geri alabilir, saniyedeki işlem sayısıyla çarpabilir, bazı tampon odalarına vb. Ekleyebilirsiniz, ancak test etmek çok daha kolaydır.

Yapılacak en kolay şey, en iyi tahminin tahsis edilmesi, sonra geri dönüp, gerçek dünya testinize uyacak şekilde arttırmak veya azaltmaktır. Bu, bulut tabanlı bir ortam kullanmanın lükslerinden biridir, donanım değişiklikleri sermaye maliyetlerinde düşüktür ve bu değişiklikler genellikle yalnızca yapılandırma güncellemelerini gerektirir. EBS hacimleri ile sadece IOPS sayısını artıramazsınız, aynı zamanda birimin boyutunu da büyütmeniz gerekir 1 . Her zaman yeni bir birim oluşturabilir ve verilerinizi kopyalayabilirsiniz. Bazı kesinti süreleri olacaktır, ancak verileriniz çok büyük değilse, ham bir kopya olduğu kadar fazla olmamalıdır.

İşte gerekli I / O'ların sayısını tahmin edin. Yine de, tahminler dizinlerin sayısına ve trafik akışınızın pürüzsüz veya ani olup olmayacağına bağlı olduğu için sadece bir tahmin. 25K tx / saatte ~ 7 tx / sn. Her bir satırın boyutu, tek bir G / Ç (4K) boyutundan daha küçük olduğu için özellikle alakalı değildir. Her işlem 1-5 IOP (birincil insert artı bir çift dizin ağacı insert) arasında bir yerde yapılacaktır, bu yüzden ~ 35 / s diyelim.

En az 100 IOPS ile başlayın ve gerekirse ölçeklendirin.


1
BTW, bunun bir takibi olarak: 300GB'lık bir veritabanı kurduk ve bu minimum 1000 IOPS anlamına geliyordu. RDS'de yaklaşık 6 ay yaşadıktan sonra, G / Ç sorunları nedeniyle 0 olay yaşadık. Muhtemelen aşırıya kaçmak, ancak ateşe yakın olabildiğince unutun.
chris

Yükünüze bağlı olarak, sağlanan GİB'lere ihtiyacınız yoktur. Toplam 2500-3500 GİB'den fazlasına ihtiyacınız olmayacaksa, standart depolama alanı 300 GB'da çalışır (EBS şeritlemesi nedeniyle).
Ross

7

Şu anda kaç iops kullandığım hakkında bir fikir edinmek için temel iostat (iostat -h) aracını kullandım. Bu yükün 4 katından daha az olsaydım ne kadar kullanacağımı tahmin ettim ve bu miktarla gittim. Benim için 780 IOPS için işe yaradı, bu yüzden 800 IOPS ile gittim.


iostat -h yaklaşık 40 tps rapor ediyor, bu 40 iops'e karşılık geliyor mu? @Sehrope'un hesapladığı sayılarla eşleşir.
chris

1
Bu doğru.
Mark D

0

Uygulamamın gerçekleştirdiği IOPS miktarını belirlemek için iostat kullanıyorum. iostat bunu tps olarak bildirir. KB / t, aktarım miktarının yığın boyutundan (256 KiB) küçük olup olmadığını belirlemenize yardımcı olur. Iostat'ı bir saniye bekleme süresi ile çalıştırıyorum, yani iostat -w 1.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.