Performans verimliliği

Tamamlandı

Kuruluşunuzun son ürün duyurularından biri hakkında bir haber hikayesinin yayımlandığını düşünün. Haber hikayesinden eklenen tanıtım, web sitenize büyük bir trafik akışı getirir. Web siteniz bu trafik artışını işleyebilir mi? Siteniz yavaşlamadan veya yanıt vermeden ek yük alabilir mi?

Bu ünitede, olağanüstü uygulama performansı sağlamanın bazı temel ilkelerine göz atacağız. Özellikle performans verimliliği sütununu oluşturan ölçeklendirme ve iyileştirme ilkeleri.

Performans verimliliği nedir?

Performans verimliliği, uygulamanın kullanılabilir kaynaklarını aldığı taleple eşleştirmektedir. Performans verimliliği kaynakların ölçeklendirilmesini, olası performans sorunlarının belirlenip iyileştirilmesini ve uygulama kodunuzun en yüksek performans için iyileştirilmesini içerir.

Şimdi uygulamanızın ölçeklenebilirliğini ve performansını iyileştirebilecek bazı desenleri ve yöntemleri gözden geçirelim.

Ölçeği büyütme ve ölçeği genişletme

İşlem kaynakları iki yönde ölçeklendirilebilir:

  • Ölçeği büyütme, tek örneğe daha fazla kaynak eklemektir. Dikey ölçeklendirme olarak da bilinir.

    An illustration that shows scaling up by adding resources to a virtual machine.

  • Ölçeği genişletme ise daha fazla örnek eklemektir. Yatay ölçeklendirme olarak da bilinir.

    An illustration that shows scaling out by adding instances to increase performance.

Ölçeği artırma , tek bir örneğe CPU veya bellek gibi daha fazla kaynak eklemekle ilgilidir. Bu örnek bir sanal makine veya PaaS hizmeti olabilir.

Örneğe daha fazla kapasite ekleme işlemi uygulamanıza sağlanan kaynakları artırır ama bunun bir sınırı vardır. Sanal makineler üzerinde çalıştıkları konağın kapasitesiyle sınırlıdır ve konakların fiziksel sınırlamaları vardır. Sonuç olarak, örneğin ölçeğini büyüttüğünüzde bu sınırlara ulaşabilirsiniz. Bu durumda örneğe başka kaynaklar ekleme beceriniz kısıtlanır.

Ölçeği genişletme , hizmete daha fazla örnek eklemekle ilgilidir. Bunlar sanal makineler veya PaaS hizmetleri olabilir. Daha fazla kapasite ekleyip tek örneği daha güçlü hale getirmek yerine, bir bütün olarak örneklerin toplam sayısını artırarak kapasite ekleriz.

Ölçeği genişletmenin avantajı, mimariye ekleyecek daha fazla makineniz olduğu sürece sonsuza kadar ölçeği genişletebilmenizdir. Ölçeği genişletmek için bir tür yük dağıtımı gerekir. Örneğin, istekleri kullanılabilir sunucular arasında dağıtan bir yük dengeleyici veya isteklerin gönderildiği etkin sunucuları tanımlamak için bir hizmet bulma mekanizması.

Her iki ölçeklendirme türünde de, kaynaklar azaltılabilir ve maliyet iyileştirme gündeme gelebilir.

Otomatik ölçeklendirme, performans gereksinimlerini karşılamak için kaynakları dinamik olarak ayırma işlemidir. İş hacmi büyüdükçe, bir uygulama istediğiniz performans düzeylerini sağlamak ve hizmet düzeyi sözleşmelerini (SLA) karşılamak için daha fazla kaynak gerektirebilir. Talep azaldıkça ve eklenen kaynaklar artık gerekli olmadığından maliyetleri en aza indirmek için serbest bırakılabilir.

Otomatik ölçeklendirme, yönetim yükünü azaltırken bulutta barındırılan ortamların esnekliğinden yararlanır. Bir kullanıcının sürekli sistem performansını izlemesi ve kaynakları ekleme ve kaldırma hakkında karar vermesi gerekliliğini ortadan kaldırır.

Ağ performansını iyileştirme

Performansı iyileştirirken, düzeylerinin kabul edilebilir sınırlar içinde olduğundan emin olmak için ağ ve depolama performansına bakarsınız. Bu performans düzeyleri uygulamanızın yanıt verme süresini etkileyebilir. Mimariniz için doğru ağ ve depolama teknolojilerini seçmek, tüketicileriniz için en iyi deneyimi sağladığınızdan emin olmanıza yardımcı olur.

Hizmetler arasına bir mesajlaşma katmanı eklemenin performans ve ölçeklenebilirlik açısından avantajı olabilir. Mesajlaşma katmanı bir arabellek oluşturarak iletileri alan uygulamanın bu hıza yetişemiyor olması durumunda dahi isteklerin hatasız bir şekilde akmaya devam etmesini sağlar. Uygulama istekler aracılığıyla çalıştığından, bu istekler alındıkları sırayla yanıtlar.

Depolama performansını iyileştirme

Birçok büyük ölçekli çözümde, veriler birbirinden ayrı yönetilebilen ve erişilebilen ayrı bölümler halinde bölünmüştür. Bölümleme stratejisi maksimum avantaj sağlayacak ve olumsuz etkileri en aza indirecek şekilde özenle seçilmelidir. Bölümleme ölçeklenebilirliği geliştirmeye, çekişmeyi azaltmaya ve performansı iyileştirmeye yardımcı olabilir.

Mimarinizde önbellek kullanmak performansın geliştirilmesine yardımcı olabilir. Önbelleğe alma, sık kullanılan verileri veya varlıkları (web sayfaları, resimler) daha hızlı almak için depolama mekanizmasıdır. Önbelleğe alma özelliğini uygulamanızın farklı katmanlarında kullanabilirsiniz. Veri alma sürelerini kısaltmak için uygulama sunucularınızla bir veritabanı arasında önbelleğe alma mekanizmasını kullanabilirsiniz.

Statik içeriği kullanıcılara yaklaştırarak kullanıcılarınız ve web sunucularınız arasında önbelleğe almayı da kullanabilirsiniz. Bu önbelleğe alma türü, web sayfalarını kullanıcılara döndürme süresini azaltır. Ayrıca, istekleri veritabanınızdan veya web sunucularınızdan boşaltarak diğer isteklerin performansını artırmanın ikincil bir etkisi vardır.

Uygulamanızdaki performans sorunlarını tanımlama

Bulutta çalıştırılan dağıtılmış uygulamalar ve hizmetler, birçok hareketli parçadan oluşan karmaşık yazılımlardır. Üretim ortamında, kullanıcıların sisteminizi kullanma şeklini izleyebilmek önemlidir. Kaynak kullanımını izlemek ve sisteminizin sistem durumunu ve performansını genel olarak izlemek de önemlidir. Bu bilgileri, sorunları algılar ve düzeltirken tanılama yardımcısı olarak kullanabilirsiniz. Ayrıca bu bilgiler olası sorunların saptanmasına ve sorun ortaya çıkmadan önlenmesine de yardımcı olabilir.

Performans iyileştirmesi, uygulamaların kendilerinin nasıl performans gösterdiği hakkında bilgi edinmeyi içerir. Bağımlı sistemlerdeki hatalar, kötü performans gösteren kodlar ve performans sorunları bir uygulama performans yönetimi aracı aracılığıyla ortaya çıkarılabilir. Bu sorunlar genellikle kullanıcılar, geliştiriciler ve yöneticiler için gizlenebilir veya gizlenebilir, ancak uygulamanızın genel performansını olumsuz etkileyebilir.

Uygulamanızla kimliğinizin tüm katmanlarına bakın ve performans sorunlarını belirleyip düzeltin. Bu performans sorunları uygulamanızda zayıf bellek işleme sorunu olabileceği gibi, veritabanınıza dizin ekleme işlemi bile olabilir. Bu yinelemeli bir süreç olabilir; şöyle ki, bir performans sorununu çözer ve ardından farkında olmadığınız bir başkasını ortaya çıkarırsınız.

Performans izleme konusunda kapsamlı bir yaklaşımla mimarinizin yararlanabileceği desen ve uygulama türlerini belirleyebilirsiniz.

Bilgilerinizi kontrol edin

1.

Aşağıdakilerden hangisi ölçeği artırma (dikey ölçeklendirme) örneğidir?

2.

Aşağıdakilerden hangisi ölçeği genişletme (yatay ölçeklendirme) örneğidir?