Bu konu, bir ApsaraDB RDS for MySQL örneğinde aktif iş parçacığı sayısının yüksek olmasının nedenlerini açıklar ve çözüm önerileri sunar.
Genel bilgiler
Aktif iş parçacığı sayısı (aktif bağlantılar olarak da bilinir), bir MySQL örneğinin iş yükünü ölçmek için kullanılan temel bir ölçümdür. Sorunsuz çalışan bir örnekte aktif iş parçacığı sayısı genellikle 10'un altındadır. Yüksek teknik özelliklere ve yüksek QPS değerine sahip örneklerde bu sayı 20 veya 30 olabilir. Sayının birkaç yüze hatta binlere ulaşması, SQL sorgularının biriktiğini ve yanıt sürelerinin arttığını gösterir. Durumun ciddiyetine bağlı olarak örnek yanıt vermeyi durdurabilir ve SQL isteklerini işlemeyi bırakabilir.
Aktif iş parçacıklarını kontrol etme
ApsaraDB RDS konsolu aracılığıyla aktif iş parçacığı sayısını görüntülemenin birkaç yöntemi bulunur:
-
İzleme ve Uyarılar
Konsoldaki Monitoring and Alerts sayfasında Standard Monitoring sekmesine tıklayın ve ardından Standard View seçeneğine tıklayarak örnek için aktif iş parçacığı ölçümlerini görüntüleyin.
-
Database Autonomy Service (DAS)
Konsolun sayfasında Dashboard sekmesine tıklayarak oturum bağlantısı durumunu görüntüleyin. İş parçacığı sayısı çok yüksekse bu durum, örnek oturumlarının engellendiğini gösterir.
Yavaş SQL sorgularının birikmesi
-
Belirti
İzleme verilerinde aktif iş parçacıklarında artış görüldüğünde yavaş SQL sorgularını kontrol etmek için öncelikle
show processlist;komutunu çalıştırın. Çok sayıda satırı tarayan büyük miktarda sorgu, aktif iş parçacığı sayısının artmasına neden olur.Yavaş SQL ile ilgili bilgilere konsoldaki sayfasından erişebilirsiniz.
-
Çözüm
Yavaş SQL sorgularının etkisini azaltmak için SQL kısıtlama özelliğini kullanın veya oturumları sonlandırın.
Tablo önbelleği sorunları
-
Belirti
Tablo önbelleği yetersiz olduğunda çok sayıda SQL deyimi
Opening tabledurumunda kalır. Bu durum genellikle QPS değeri yüksek olduğunda veya çok sayıda tablo bulunduğunda ortaya çıkar. -
Çözüm
table_open_cache parametresinin (örneği yeniden başlatma gerektirmez) ve table_open_cache_instances parametresinin (örneği yeniden başlatma gerekir) değerlerini artırın.
Meta veri kilidi (MDL) sorunları
-
Belirti
Bir meta veri kilidi (MDL) oluştuğunda çok sayıda SQL sorgusu
Waiting for table metadata lockdurumuna geçer. Bir DDL deyimipreparevecommitaşamalarında bir MDL elde etmelidir. Tabloda işlenmemiş işlemler veya yavaş SQL sorguları varsa DDL işlemi engellenir. Bu durum diğer SQL sorgularını da engeller ve sonunda aktif iş parçacığı sayısını artırır. -
Çözüm
Bu sorunu çözmek için işlenmemiş işlemleri, yavaş SQL sorgularını veya çalışan DDL deyimini sonlandırın.
Satır kilidi çakışmaları
-
Belirti
Satır kilidi çakışmaları, innodb_row_lock_waits ve innodb_row_lock_time ölçümlerindeki artışla belirtilir.
Konsoldaki sayfasında Dashboard sekmesine tıklayarak row lock bölümündeki izleme öğelerini görüntüleyin.
-
Çözüm
show engine innodb status;komutunu çalıştırarak çok sayıda oturumunLock waitdurumunda olup olmadığını kontrol edin. Durum buysa satır kilidi çekişmesi şiddetlidir. Çekişmeyi azaltmak için sık güncellenen noktaları optimize edin, işlem boyutlarını küçültün ve işlemleri zamanında tamamlayın.