ApsaraDB RDS for MySQL örneğinde yüksek IOPS, sorguların veriyi bellek yerine diskten okuduğunu gösterir. Kök nedeni belirlemek için Database Autonomy Service (DAS) tanılama raporunu kullanın ve ardından sorumlu oturumları sonlandırın.
Nedenler
RDS for MySQL üzerindeki IOPS artışları iki temel nedenden kaynaklanır:
Önbellekleme veya sıralama için yetersiz bellek: RDS örneğinin bellek kapasitesi veri önbellekleme veya sıralama gereksinimlerini karşılayamadığında yoğun miktarda fiziksel G/Ç işlemi oluşur.
Tam tablo taramaları veya düşük verimli sorgular: Dizin kullanmadan çok sayıda satırı tarayan sorgular, döndürülen satır sayısına değil temas edilen satır sayısına orantılı G/Ç üretir. Verimli bir yürütme planı olmadan tekrarlanan sıralamalar bu etkiyi artırır.
IOPS kullanımını azaltma
Aşağıdaki yöntemlerden birini veya her ikisini birlikte kullanabilirsiniz.
Tanılama raporu oluşturma (önerilir)
DAS tek tıkla tanılama raporu; aktif oturumları, kilitlenmeleri ve yavaş sorguları tek bir görünümde sunar ve hemen uygulayabileceğiniz optimizasyon önerileri sağlar.
Data Management (DMS) konsolunda RDS örneğine giriş yapın.
RDS örneğine sağ tıklayın ve Performance > One-click diagnosis seçeneğini seçin.
DAS konsolunda gerçek zamanlı oturumları, kilitlenmeleri ve yavaş sorguları inceleyin.
İlgili modülün ayrıntılar bağlantısını tıklayın ve optimizasyon önerilerini uygulayın.
Anormal oturumları sonlandırma
Tanılama raporu mevcut değilse veya optimizasyon değişiklikleri hemen uygulanamıyorsa aşırı fiziksel okuma yapan oturumları sonlandırın. DAS oturum görünümünde Physical_sync_read veya Physical_async_read değerlerinin yüksek olduğu oturumlara odaklanın; bu ölçümler yoğun fiziksel disk okumalarını gösterir.
Oturumları sonlandırmak geçici bir rahatlama sağlar. Uygulama düzeyinde sorguları durdurarak yeniden bağlanmalarını ve tekrar çalıştırılmalarını önleyin.
DMS'de oturumları sonlandırma
Data Management (DMS) konsolunda RDS örneğine giriş yapın.
RDS örneğine sağ tıklayın ve Performance > Instance session seçeneğini seçin.
Sonlandırmak istediğiniz oturumu seçin ve Kill Selected düğmesini tıklayın.
MySQL komut satırından oturumları sonlandırma
SHOW PROCESSLIST ve SHOW FULL PROCESSLIST komutları, komutu çalıştırdığınız anda aktif olan oturumların anlık görüntüsünü döndürür. Sürekli aktif olan veya en fazla kaynağı tüketen oturumları belirlemek için bu komutları birkaç kez çalıştırın.
MySQL komut satırı aracını kullanarak RDS örneğine bağlanın.
-
Anormal oturumları belirleyin:
Özet görünüm için
SHOW PROCESSLIST;komutunu çalıştırın.
Çok sayıda oturum aktifse tam sorgu metnini görmek için
SHOW FULL PROCESSLIST;komutunu çalıştırın.
-
Anormal oturumları sonlandırın.
[$ID]ifadesini ID sütunundaki değerle değiştirin.kill [$ID]
Örneğe bağlanamıyorsanız
Bağlantı sayısı üst sınıra ulaştığında hem DMS hem de MySQL komut satırı aracı bağlanamaz. ApsaraDB RDS konsolunda wait_timeout parametresini 60 gibi küçük bir değere ayarlayın. Bu işlem, örneğin 60 saniyeden uzun süredir boşta olan bağlantıları otomatik olarak kapatmasını sağlayarak bağlantı yuvalarını serbest bırakır ve böylece giriş yapıp tanılama işlemini başlatabilirsiniz.
Uygulama kapsamı
ApsaraDB RDS for MySQL