Bulut uygulamaları için performans testi ve kötü model

Tasarım desenlerine çok benzer performans kötü modelleri, kuruluşlardaki yaygın hatalı süreçler ve uygulamalardır. Bunlar, bir uygulama baskı altındayken ölçeklenebilirlik sorunlarına neden olabilecek yaygın uygulamalardır. Bu uygulamaların farkında olmak, yazılım uygulayıcıları arasındaki üst düzey kavramların iletişimini kolaylaştırma konusunda yardımcı olabilir ve kod gözden geçirildiğinde veya performans sorunlarını tanılarken kötü model bilgisi yararlı olabilir.

İşte yaygın bir senaryo: Bir uygulama performans testi sırasında iyi davranır. Daha sonra üretime geçirilen uygulama, gerçek iş yüklerini işlemeye başlıyor. Bu noktada kötü performans göstermeye başlar; kullanıcı isteklerini reddeder, durur veya özel durumlar oluşturur. Geliştirme ekibi iki soruyla yüzleşmek zorunda kalıyor:

  • Bu davranış neden test sırasında ortaya çıkmadı?
  • Nasıl düzeltiriz?

İlk sorunun yanıtı basit. Bir test ortamında gerçek kullanıcıların, bunların davranış desenlerinin ve gerçekleştirebilecekleri iş hacimlerinin simülasyonunu yapmak zordur. Bir sistemin yük altında nasıl davrandığını anlamanın tek kesin yolu, sistemi üretimde gözlemlemektir. Bu dediklerimizden performans testini tamamen atlamanızı önerdiğimiz anlamını çıkarmayın. Performans testi, temel performans ölçümlerini almak için çok önemlidir. Bununla birlikte, canlı sistemde ortaya çıkan performans sorunlarını gözlemlemeye ve düzeltmeye hazırlıklı olmalısınız.

Sorunun nasıl çözüleceğiyle ilgili ikinci sorunun yanıtı biraz daha karmaşık. Bunda birçok faktörün rolü vardır ve bazen sorun yalnızca belirli koşullarda ortaya çıkar. Kök nedenin bulunmasında püf nokta izleme ve günlük kaydıdır. Tabii önce ne aradığınızı bilmeniz gerekiyor.

Microsoft Azure müşterileriyle yaşadığımız deneyimlerden yola çıkarak müşterilerin üretimde karşılaştığı en yaygın performans sorunlarından bazılarını belirledik. Her kötü model için kötü modelin neden gerçekleştiğini, belirtilerini ve sorunun çözümüne yönelik teknikleri açıkladık. Ayrıca hem kötü modeli hem de önerilen ölçeklenebilirlik çözümünü gösteren örnek kod sağlarız.

Açıklamaları okuduğunuzda bu kötü modellerden bazıları belirgin görünebilir, ancak bunlar düşündüğünüzden daha sık ortaya çıkar. Bazen uygulamalar şirket içinde sorunsuzca çalışan bir tasarımı devralmasına rağmen bulutta doğru biçimde ölçeklendirilemiyor. Bazı uygulamalar ise çok temiz bir tasarımla çalışmaya başlıyor, ancak yeni özellikler eklendikçe bu kötü modellerden birkaçı uygulamaya sızıyor. Ne olursa olsun, bu kılavuz kötü modelleri tanımlamanıza ve gidermenize yardımcı olacak.

Kötü model kataloğu

Tanımladığımız kötü amaçlı değişkenlerin listesi aşağıdadır:

Kötü Model Açıklama
Meşgul Veritabanı Bir veri deposuna çok fazla işleme yükü boşaltma.
Meşgul Ön Uç Yoğun kaynak tüketimi gerektiren görevleri arka plan iş parçacıklarına kaydırma.
Geveze G/Ç Sürekli olarak çok sayıda küçük ağ isteği gönderme.
Fazlalık Getirme Gerekenden fazla veri getirerek gereksiz G/Ç işlemlerine yol açma.
Yanlış Örnek Oluşturma Paylaşılacak ve yeniden kullanılacak şekilde tasarlanan nesneleri tekrar tekrar oluşturma ve yok etme.
Tek Parça Kalıcılık Çok farklı kullanım desenlerine sahip veriler için aynı veri deposunu kullanma.
Önbelleksizlik Verileri önbelleğe almama.
Gürültülü Komşu Tek bir kiracı, kaynakların orantısız bir miktarını kullanır.
Storm'un yeniden denemesi Bir sunucuya yönelik başarısız istekleri çok sık yeniden deneme.
Zaman Uyumlu G/Ç G/Ç tamamlanırken çağıran iş parçacığını engelleme.

Sonraki adımlar

Performans ayarlama hakkında daha fazla bilgi için bkz. Dağıtılmış bir uygulamada performans ayarlama