Aracılığıyla paylaş


Sürekli performans iyileştirme önerileri

Bu Azure Well-Architected Framework Performans Verimliliği denetim listesi önerisi için geçerlidir:

PE:12 Performansı sürekli olarak iyileştirin. Veritabanları ve ağ özellikleri gibi zaman içinde performansın kötüleştiğini gösteren bileşenlere odaklanın.

Bu kılavuzda sürekli performans iyileştirme önerileri açıklanmaktadır. Sürekli performans iyileştirmesi sürekli izleme, analiz etme ve performans verimliliğini artırma sürecidir. Performans verimliliği talepteki artış ve düşüşlere uyum sağlar. Performans iyileştirmesinin iş yükünün ömrü boyunca devam eden bir etkinlik olması gerekir. İş yükü performansı genellikle zaman içinde düşer veya aşırı hale gelir ve dikkate alınması gereken faktörler kullanım düzenleri, talep, özellikler ve teknik borç değişiklikleridir.

Tanımlar

Süre Tanım
Veri katmanlama Verileri erişim sıklığına göre kategorilere ayırmayı ve uygun depolama katmanlarında depolamayı içeren bir depolama stratejisi.
Teknik borç Birikmiş verimsizlikler, yetersiz tasarım seçimleri veya kodu daha hızlı teslim etmek için geliştirme sürecinde kasıtlı olarak alınan kısayollar.
Yaşam süresi Veriler için süre sonu ayarlayan bir mekanizma.

Temel tasarım stratejileri

Performans verimliliği, iş yükü kapasitesinin gerçek kullanıma uygun olmasıdır. Fazla performans gösteren bir iş yükü, yetersiz performans gösteren bir iş yükü kadar sorunludur. Dengeler farklılık gösterir. Aşırı performans, maliyet iyileştirmesini etkiler. Düşük performans kullanıcıları etkiler. Performans verimliliğinin anahtarı, zaman içinde izleme, ayarlama ve test etmedir. İş yükünün verimli olduğundan emin olmak için performans ölçümlerini düzenli olarak gözden geçirmeniz ve gerekli ayarlamaları yapmanız gerekir. Performans hedeflerine ulaşmak için tüm değişiklikleri uygulama öncesi ve sonrası test etmek gerekir.

Performans kültürü geliştirme

Performans kültürü, sürekli geliştirmenin beklendiği ve ekibin üretimden öğrendiği bir ortamdır. Performans iyileştirmesi özel beceriler gerektirir. İş yükü ekipleri, talepteki artış ve düşüşleri karşılamak için performanslarını iyileştirmek için doğru becerilere ve düşünce yapısına ihtiyaç duyar. Ayrıca ortaya çıkan performans sorunlarının gerekli izlenmesini ve düzeltilmesi için zaman ayırmanız gerekir. Bu takımların net beklentilere ihtiyacı var. Örneğin performans hedeflerinin, taban çizgilerinin ve sapma eşiklerinin (temelden ne kadar uzak kabul edilebilir) yüksek oranda görünür ve sosyalleştirilmesi gerekir.

Denge: Sürekli performans iyileştirmeleri, performans sorunlarını bulmak ve düzeltmek için doğru becerilere ve zamana sahip bir ekip gerektirir. Personelin performansa adanmış olması operasyonel maliyet katıyor. Sınırlı personel kaynaklarınız varsa, sürekli performans iyileştirmesi diğer işlem görevlerinden zaman alabilir.

Yeni platform özelliklerini değerlendirme

Yeni platform özelliklerinin değerlendirilmesi, iyileştirilmiş depolama çözümleri, önbelleğe alma mekanizmaları veya kaynak yönetimi araçları gibi performans verimliliğini artırabilecek yeni işlevlerin ve araçların incelenmesini içerir. Yeni platform özellikleri, performans verimliliğini artırmak için yollar açabilir. En son yenilikleri ve en iyi uygulamaları kullandığınızdan emin olmak için platformunuzu ve araçlarınızı güncel tutun. Yaklaşımınızı geliştirmek için bu yeni eklemelerden gelen geri bildirimleri ve performans ölçümlerini tutarlı bir şekilde izleyin.

İyileştirme çalışmalarının önceliğini belirleme

Performansı proaktif olarak iyileştirmek, herhangi bir performans sorunu ortaya çıkmadan önce iş yükünün performansını geliştirmek ve geliştirmek için proaktif önlemler almak anlamına gelir. Proaktif ölçüler kullanmak olası performans sorunlarını belirlemeyi, performans ölçümlerini izlemeyi ve iş yükünün verimli bir şekilde çalıştığından ve istenen performans hedeflerini karşıladığından emin olmak için iyileştirmeler uygulamayı içerir. Bozulan bileşenlerin, kritik akışların ve teknik borcun analizine bağlı olarak, her alana özgü performans iyileştirmeleri uygulayabilirsiniz. Geliştirmeler kod değişikliklerini, altyapı düzeltmelerini veya yapılandırma güncelleştirmelerini içerebilir.

Bozulan bileşenlerin önceliklerini belirleme

bir iş yükü genellikle zaman içinde performans düşüşlerine eğilimli veritabanları ve ağ bileşenleri gibi bileşenlere sahiptir. İş yükü geliştikçe ve kullanım düzenleri değiştikçe, bu değişiklikler genellikle iş yükündeki tek tek bileşenlerin performansını etkiler. Veritabanlarındaki verilerin artması, sorgu çalıştırma sürelerinin daha uzun ve daha yavaş veri alınmasına neden olabilir. Kullanım desenlerindeki değişiklikler, yetersiz sorgu tasarımına neden olabilir. Bir zamanlar verimli olan sorgular, iş yükü geliştikçe verimli hale gelebilir. Verimsiz sorgular aşırı kaynak tüketebilir ve veritabanı performansını düşürebilir. Artan iş yükü kullanımı daha yüksek ağ trafiğine yol açarak tıkanıklık ve gecikme sorunlarına neden olabilir.

Bu bileşenlerin performansını iyileştirmek için sürekli çaba sarf etmek önemlidir. İş yükünüzdeki performans sorunlarını proaktif olarak belirleyin ve giderin. Bilinen kötüleşen bileşenlere öncelik vererek olası performans sorunlarını proaktif olarak ele alabilir ve iş yükünüzün sorunsuz çalışmasını sağlayabilirsiniz. Performans ayarlama tekniklerini uygulamayı, kaynak ayırmayı iyileştirmeyi veya gerektiğinde donanım veya yazılım bileşenlerini yükseltmeyi içerebilir.

Kritik akışların önceliklerini belirleme

Kritik akışlar, iş yükündeki en önemli ve yüksek öncelikli işlemler veya iş akışlarıdır. Bu kritik akışlara öncelik vererek, iş yükünün en önemli bölümlerinin performans için iyileştirildiğinden emin olun. Hangi akışların kritik olduğunu bilmek, iyileştirme çalışmalarının önceliğini belirlemeye yardımcı olur. Uygulamanızın en önemli alanlarının performans verimliliğini iyileştirmek en yüksek yatırım getirisini sağlar. Kritik akışları ve en popüler sayfaları izlemeniz gerekir. Bunları daha verimli hale getirmenin yollarını arayın.

Performans iyileştirmeyi otomatikleştirme

Otomasyon, yinelenen ve zaman alan el ile işlemleri ortadan kaldırarak bunların verimli bir şekilde gerçekleştirilebilmesini sağlar. Otomasyon, insan hatası olasılığını azaltır ve iyileştirme görevlerinin çalıştırılmasında tutarlılık sağlar. Bu görevleri otomatikleştirerek, insanları değer katan daha karmaşık etkinliklere ve etkinliklere odaklanmaları için serbest de sağlayabilirsiniz. Performans testi, dağıtım ve izleme gibi çeşitli görevlere otomasyon uygulayabilirsiniz:

  • Otomatik performans testi: Farklı iş yüklerinin ve senaryoların benzetimini yapmak için JMeter, K6 veya Selenium gibi otomatik performans testi araçlarını kullanın.

  • Otomatik dağıtım: Tutarlı ve hatasız dağıtımlar sağlamak için otomatik dağıtım işlemlerini uygulayın. Dağıtım işlemini otomatikleştirmek için CI/CD araçlarını kullanın. Bu araçlar, performans sorunlarını uç noktalara karşı test etmek, HTTP durumlarını denetlemek ve hatta veri kalitesini ve çeşitlemelerini doğrulamak için kullanırken belirlemenize yardımcı olabilir.

  • İzleme ve uyarı: Performans ölçümlerini sürekli izlemek ve sapmaları veya anomalileri algılamak için otomatik izleme ve uyarı sistemleri ayarlayın. Performans sorunları algılandığında, uygun ekipleri veya bireyleri bilgilendirmek için otomatik uyarılar tetiklenebilir.

  • Olay yönetimi: Uyarıları alabilen, bilet oluşturabilen ve çözüm için uygun takımlara bilet atayabilen otomatik bir olay yönetim sistemi uygulayın. Bu adımlar, performans sorunlarının hemen ele alınmasına ve doğru kaynaklara atanmasını sağlamaya yardımcı olur.

  • Otomatik tanılama: Performans verilerini analiz edip performans sorunlarının kök nedenlerini belirleyebilen otomatik tanılama araçları veya betikleri geliştirin. Bu araçlar, sistemin performans sorunlarına neden olan belirli alanlarını veya bileşenlerini belirlemeye yardımcı olabilir.

  • Otomatik düzeltme eylemleri: Belirli performans sorunları algılandığında tetiklenebilen otomatik düzeltme eylemlerini tanımlayın ve uygulayın. Bu eylemler hizmetleri yeniden başlatmayı, kaynak ayırmayı ayarlamayı, önbellekleri temizlemeyi veya diğer performans iyileştirme tekniklerini uygulamayı içerebilir.

  • Kendi kendini iyileştiren sistemler: Bilinen performans sorunları için kurtarma işlemini otomatikleştirerek sisteminizde kendi kendini düzeltme özellikleri oluşturun. Bu özellik, en iyi performansı geri yüklemek için sistem yapılandırmasını otomatik olarak düzeltmeyi veya ayarlamayı içerebilir.

Teknik borcu giderme

Teknik borç, birikmiş verimsizlikleri, yetersiz tasarım seçimlerini veya geliştirme sürecinde alınan ve performansı etkileyebilecek kısayolları ifade eder. Teknik borç, belirsiz kod ve aşırı karmaşık uygulamalar, performans verimliliğinin elde edilebilirliğini zorlaştırabilir. Teknik borcun giderilmesi, iş yükünün genel performansını ve sürdürülebilirliğini geliştirmek için bu sorunların tanımlanmasını ve çözülmesini içerir. Bu çalışma kodu yeniden düzenlemeyi, veritabanı sorgularını iyileştirmeyi, mimari tasarımı iyileştirmeyi veya en iyi yöntemleri uygulamayı içerebilir. Belki de son tarihi karşılamak için teknik borç getirmişsinizdir, ancak zaman içinde performans verimliliğini iyileştirdikçe teknik borcu gidermeniz gerekir.

Veritabanlarını iyileştirme

Veritabanlarının sürekli iyileştirilmesi, veritabanlarının yükleri işleyebilmesini, hızlı yanıt sürelerini sunabilmesini ve kaynak kullanımını en aza indirebilmesini sağlamak için iyileştirmeleri tanımlamayı ve uygulamayı içerir. Veritabanlarını düzenli olarak iyileştirerek uygulama performansını geliştirebilir, kapalı kalma süresini azaltabilir ve genel kullanıcı deneyimini geliştirebilirsiniz.

  • Veritabanı sorgularını iyileştirme: Kötü yazılmış SQL deyimleri veritabanı performansını düşürebilir. Verimsiz JOIN koşulları gereksiz veri işlemeye neden olabilir. Karmaşık alt sorgular, iç içe sorgular ve aşırı işlevler çalışma hızını azaltabilir. Çok fazla veri alan sorgular yeniden yazılmalıdır. En yaygın veya kritik veritabanı sorgularınızı tanımlamalı ve bunları iyileştirmelisiniz. İyileştirme, sorguların daha hızlı olmasını sağlamaya yardımcı olur.

  • Dizinleri koruyun: Dizinlerin düzgün tasarlandığından ve korundığından emin olmak için dizin oluşturma stratejinizi değerlendirin. Dizin bakımı, kullanılmayan veya yedekli dizinleri tanımlamayı ve sorgu desenleriyle uyumlu dizinler oluşturmayı içerir. Veritabanı dizinleri, veri alma işlemlerini hızlandırmaya yardımcı olur. İlişkisel veritabanları için dizin parçalanmayı izlemeniz gerekir. Dizinleri düzenli olarak yeniden oluşturmanız veya yeniden düzenlemeniz gerekir. İlişkisel olmayan veritabanları için iş yükünüz için doğru dizin oluşturma ilkesini seçmeniz gerekir. Kullanılabilir durumdaki veritabanlarında otomatik ayarlamayı kullanın. Bu özellikler eksik dizinleri otomatik olarak oluşturmayı, kullanılmayan dizinleri bırakmayı ve plan düzeltmesini içerir. Daha fazla bilgi için bkz. Performansı geliştirmek için dizinleri koruma.

  • Model tasarımını gözden geçirme: Uygulamanın belirli gereksinimlerine göre iyileştirdiğinizden emin olmak için veri modelini gözden geçirin. Sorgu performansını ve veri alımını geliştirmek için normal dışılaştırma, bölümleme veya başka teknikler gerekebilir.

  • Veritabanı yapılandırmasını iyileştirme: Performansı ve kaynak kullanımını en üst düzeye çıkarmak için bellek ayırma, disk G/Ç ve eşzamanlılık ayarları gibi veritabanı yapılandırma ayarlarını iyileştirin.

Veri verimliliğini iyileştirme

Veri verimliliğini en iyi duruma getirmek, verilerin mümkün olan en verimli şekilde depolanmasını, işlenmesini ve erişilmesini sağlama işlemidir. Veri katmanlama ve yaşam süresi (TTL) kullanma, veri verimliliğini iyileştirmek için kullanılabilecek tekniklerdir. Bu teknikleri veritabanları, dosya sistemleri veya nesne depolama gibi çeşitli veri depolama senaryolarında uygulayabilirsiniz.

  • Veri katmanlama kullanma: Veri katmanlama, verileri erişim önemine veya sıklığına göre kategorilere ayırmayı ve verileri buna göre farklı katmanlarda depolamayı içerir. Veri katmanlamanın ayarlanması, depolama kaynaklarının daha verimli kullanılmasına olanak tanır ve performansı artırır. Sık erişilen veya kritik veriler yüksek performanslı katmanlarda depolanabilirken, daha az sıklıkta erişilen veya daha az kritik veriler daha düşük maliyetli katmanlarda depolanabilir. Amaç, verilerin doğru katmanda olduğundan emin olmak için zaman içindeki veri kullanımını gözden geçirmektir. Veri öncelikleri değiştikçe verilerin bir katmandan diğerine taşınması gerekir.

  • Yaşam süresi uygulama: Yaşam süresi, veriler için süre sonu zamanı ayarlayan bir mekanizmadır. Yaşam süresi, verilerin belirli bir süre sonra otomatik olarak silinmesine veya arşivlenmesine olanak sağlayarak depolama gereksinimlerini azaltır ve veri yönetimini geliştirir. Uygun bir yaşam süresi ayarlayarak gereksiz verilerin kaldırılmasına izin vererek depolama alanı boşaltıp genel verimliliği artırmış olursunuz. Oturum verileri, geçici dosyalar ve önbellek verileri yaşam süresi için sık kullanılan hedeflerdir. Veritabanı girişlerinin yaşam süresi de olabilir.

Risk: Çok kısa bir yaşam süresi performans sorunlarına neden olabilir.

Azure kolaylaştırma

Performans iyileştirmeyi otomatikleştirme: Azure Danışmanı, iş yükü telemetri verilerini temel alan otomatik performans önerileri sağlar. Bu önerileri düzenli olarak gözden geçirmeli ve ele almalıdır. Azure İzleyici, sisteminizin performansıyla ilgili gerçek zamanlı içgörüler sağlar ve belirli performans ölçümlerine göre uyarılar ayarlamanıza olanak tanır. Azure Log Analytics, toplanan günlükler ve ölçümler üzerinde otomatik tanılama ve analiz sağlar. Azure Uygulaması Insights gibi araçlar performansı iyileştirmeye yönelik içgörüler ve öneriler sağlar.

Düzeltmeyi otomatikleştirmek için otomasyon araçlarını veya betikleri kullanarak uyarılar tetiklendiğinde düzeltme eylemlerini otomatik olarak yürütün. Azure Otomasyonu, Azure İşlevleri veya özel otomasyon çözümlerini kullanabilirsiniz.

Azure, farklı kullanıcı senaryolarının ve iş yüklerinin benzetimini yapmak için performans testi sağlar. Otomatik test, performans sorunlarını belirlemenize ve sisteminizi buna göre iyileştirmenize yardımcı olabilir. Azure DevOps gibi araçlar performans testlerini otomatikleştirebilir.

Veritabanlarını iyileştirme: SQL ürün ailesi, SQL veritabanı performansını izlemenize ve düzeltmenize olanak sağlayan birçok yerleşik özelliğe sahiptir. Veritabanı performansını korumak için bu özellikleri kullanmalısınız. Azure SQL Veritabanı' nın sorguları sürekli izleyen ve geliştiren bir otomatik ayarlama özelliği vardır. SQL sorgularını otomatik olarak geliştirmek için bu özelliği kullanmalısınız.

Azure Cosmos DB'nin özelliklerini kullanarak dizin oluşturma ilkelerinizi özelleştirebilirsiniz . İş yükünüzün performans gereksinimlerini karşılamak için ilkeleri özelleştirin.

Veri verimliliğini iyileştirme: Veri katmanlama, verileri erişim sıklığına ve önemine göre farklı katmanlarda depolamanıza olanak tanır. Depolama maliyetlerini ve performansını iyileştirmeye yardımcı olur. Azure, blob verileri için sık erişimli, seyrek erişimli ve arşiv katmanları gibi farklı depolama katmanları sağlar. Sık erişimli katmanlar sık erişilen veriler için, seyrek erişimli katmanlar seyrek erişilen veriler için ve arşiv katmanları ise nadiren erişilen veriler için iyileştirilmiştir. Verilerinize en uygun depolama erişim katmanını kullanarak verimli veri depolama ve alma sağlayabilirsiniz.

Performans Verimliliği denetim listesi

Önerilerin tamamına bakın.