Kritik akışların performansını önceliklendirmeye yönelik öneriler

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

PE:09 Kritik akışların performansını önceliklendirme. İş yükü kaynaklarının ayrılması ve performans iyileştirme çalışmaları, en önemli iş süreçlerini, kullanıcıları ve işlemleri destekleyen akışlara öncelik vermelidir.

Bu kılavuzda, bir iş yükündeki kritik akışların performansını önceliklendirmeye yönelik öneriler açıklanmaktadır. Kritik akışlar, gelir oluşturan veya yüksek öncelikli işlemleri yönlendiren kritik iş süreçlerini temsil eder. Kritik akışların performansını öncelik sırasına eklediğinizde, en fazla etkiye sahip akışların düşük öncelikli akışlardan önce ihtiyaç duydukları kaynakları elde ettiğinden emin olursunuz. Bu öncelik belirlemesinin yapılmaması, iş yükü öncelikleri ve kullanıcı deneyimi üzerinde orantısız olumsuz etkilere neden olabilir.

Tanımlar

Süre Tanım
Akış bir iş yükünde, belirli bir işlevi gerçekleştiren eylemler dizisi. Akış, verilerin taşınması ve iş yükünün bileşenleri arasında işlemlerin çalıştırılmasını içerir.
Öncelik sırası işleme Düşük öncelikli görevlerden önce yüksek öncelikli görevleri işleme eylemi.
Hız sınırlaması Bir kaynağa kaç isteğin erişebileceğini sınırlama eylemi.
Sistem akışı Sistem içindeki bilgi ve işlem akışı. Sistem, kullanıcı akışlarını veya iş yükü işlevselliğini etkinleştirmek için bu akışı otomatik olarak izler.
Kullanıcı akışı Kullanıcının bir görevi gerçekleştirmek için izlediği sıra.

Temel tasarım stratejileri

Kritik akışlar, müşteriler için önemli kullanıcı akışlarına veya iş yükü işlevselliği için kritik öneme sahip işlemler için sistem ve veri akışlarına başvurur. Bu akışlar kullanıcı kayıtları, oturum açma işlemleri, ürün satın alma işlemleri, bir ödeme duvarının arkasındaki sayfalara erişme veya iş yükünüzdeki başka bir önemli yol veya işlem gibi eylemleri içerebilir.

Kritik akışlar kullanıcı deneyimini veya iş operasyonlarını önemli ölçüde etkiler. Kritik akışlar kritik olmayan akışlardan daha yüksek performans hedeflerine ve hizmet düzeyi sözleşmelerine sahiptir. Kaynakların sınırlı olduğu durumlarda kritik olmayan akışlar kritik akışlara kaynak kullanımı getirmelidir. Kritik akışları yalıtmadan ve iyileştirmeden önce tüm akışları tanımlamanız, izlemeniz ve önceliklerini belirlemeniz gerekir.

Tüm akışları tanımlama

Kritik akışların performansını önceliklendirmenin ilk adımı, iş yükünüzdeki tüm akışları belirlemektir. Akış belirleme, her kullanıcı yolunun ve bileşen iletişimlerinin sistematik olarak eşlenip anlaşılmasını içerir. Odak noktası, performans ölçümlerini ve akışların iş yükü performansı üzerindeki olası etkisini anlamaktır.

İş yükünü ayrık akışlara ayırarak performans sorunlarını, yetersiz kaynak kullanımını ve performans iyileştirme fırsatlarını bulabilirsiniz. Bu bilgi, gerekli geliştirme alanlarını kullanıma sunar ve kritik akışları tanımlamanın ilk adımıdır. Daha fazla bilgi için bkz. Kullanıcı ve sistem akışlarını tanımlama ve derecelendirme.

Akış performansı ölçümlerini izleme

İş yükünüzdeki tüm akışları tanımladıktan sonra her akışta performans ölçümleri toplamanız ve bu ölçümleri izlemeniz gerekir. Akış ölçümleri yanıt süreleri, hata oranları ve aktarım hızı hakkında içgörüler sağlar. Amaç, her akışın iş yükü performansı üzerindeki etkisini daha da geliştirmek için performansla ilgili ölçümleri tutarlı bir şekilde gözlemlemek ve kaydetmektir. Akış ölçümlerini izlemek için aşağıdaki araçları kullanarak veri toplayabilirsiniz:

  • Analiz ve izleme araçları: Bu araçlar, uygulamanızdaki kullanıcı davranışları ve etkileşimleri hakkında içgörüler sağlar. Kullanıcı verilerini analiz ederek en yaygın akışları, performans sorunlarını veya olası sorunları belirleyebilirsiniz.

  • Uygulama performansı izleme (APM) araçları: Uygulamanızın performansını izlemek ve akışların nasıl çalıştığını izlemek için APM araçlarını kullanın. Bu araçlar yanıt sürelerine, hatalara ve diğer performans ölçümlerine görünürlük sağlayarak kritik akışları belirlemenize ve performanslarını iyileştirmenize olanak tanır.

  • Günlüğe kaydetme ve hata ayıklama araçları: Uygulamanız çalışırken günlükleri yakalamak ve analiz etmek ve bilgi hatalarını ayıklamak için bu araçları kullanın. Akışların nasıl çalıştığını izlemek ve sorunları veya hataları belirlemek için günlükleri ve hata ayıklama bilgilerini gözden geçirin.

Kritik akışları belirleme

Kullanılabilir performans verileriyle tüm akışları sıralamaya ve kritik akışları tanımlamaya başlayabilirsiniz. Kritik akışların tanımlanması, her akışın performans etkisini ve kritikliğini değerlendirmeyi içerir. Etkin akış önceliklendirmesi, en önemli akışların daha az kritik akışlardan önce gereken kaynakları almasını sağlar. Uygulamanızdaki akışları önceliklendirmek için şu adımları göz önünde bulundurun:

  • İş etkisini belirleme: her akışın operasyonlarınızdaki önemini değerlendirerek işe başlayın. Her akışın iş hedeflerinize, bunun kullanıcılar üzerindeki etkisine ve düşük performansın olası olumsuz etkilerine nasıl uyum gösterdiğine odaklanın. Örneğin, ücretsiz bir hizmet katmanı daha fazla kullanıcıyı çekebilirken, ücretli bir katman iş hedefleriniz için daha önemli olabilir.

    Buna ek olarak, bir veya daha fazla iş süreci genelinde bir akışın performans etkilerini göz önünde bulundurun. Birden çok akış tek bir iş sürecini desteklese de, genellikle bir akışın bu sürecin performansı üzerinde önemli bir etkisi vardır. Performansı en çok etkileyen akışları belirlemek istiyorsunuz. Buna karşılık, tek bir akış çeşitli işlemlerin altını çizebilir. Bu gibi durumlarda, bu akışın performansı tüm ilgili işlemlerin etkinliğini doğrudan etkiler ve büyük olasılıkla kritik bir akıştır.

  • Performans verilerini analiz etme: Her akışla ilişkili performans ölçümlerini analiz edin. Akışın verimliliği ve önemi hakkında içgörüler sağlayabilecek desenleri, anomalileri veya öne çıkma ölçümlerini arayın. Örneğin, önemli kullanımı olan sistem akışları büyük olasılıkla önemli akışlardır.

  • Kritiklik derecelendirmesi atama: İş etkisine ve performans göstergelerine bağlı olarak akışların önceliğini belirlemeniz gerekir. Yüksek, Orta ve Düşük önem derecelerini kullanın. İş üzerinde önemli bir etkiye veya yüksek performans talebine sahip akışlar "Yüksek" önem derecesini almalıdır. Bu akışlar kritik akışlarınızdır. Yüksek kullanıcı trafiğine sahip akışlara odaklanın veya gelir oluşturma üzerinde doğrudan etki yaratın. Aşağıdaki tablo kritik (Yüksek) ve kritik olmayan akışların (Orta - Düşük) özelliklerini sağlar.

Kritik akışlar Kritik olmayan akışlar
Yüksek kullanım Düşük kullanım
İş açısından kritik İş açısından kritik değil
Pahalı işlemler Küçük işlemler
Zamana duyarlı Zamana duyarlı değil
Üretim Ön üretim
Gerçek zamanlı işleme Toplu işlem
Gecikme süresine duyarlı Gecikme süresine duyarlı değil
Ödeme yapan kullanıcı Ödemesi olmayan kullanıcı
Premium katmanı Temel katman
Önemli görevler Önemsiz görevler
Yüksek gelirli hesaplar Düşük gelir hesapları

Kritik akışları yalıtma

Kritik akışları yalıtma işlemi, kritik akışları desteklemek için ayrılmış kaynaklar veya kapasite sağlamaktır. En iyi kullanıcı deneyimi veya önemli iş sonuçları için gerekli olan kaynakları ve dikkati bu akışlara ayırmak istiyorsunuz. Amaç, kritik akışların verimli ve etkili bir şekilde çalışması için yeterli işlem gücü, ağ bant genişliği ve kaynak aldığından emin olmaktır. Kritik akışları yalıtarak, kritik akışları destekleyen kaynakları daha kolay yönetebilirsiniz. Kritik akışları yalıtmaya yönelik öneriler şunlardır:

  • Kaynak segmentasyonu: Kritik akışlar için ayrı kaynaklar oluşturarak diğer işlemlerden bağımsız olarak çalışmalarına olanak tanır. Örneğin, ayrılmış ağ kesimlerindeki kritik akışları yalıtabilir veya bu akışların işleme gereksinimlerini karşılamak için ayrılmış sunucular kullanabilirsiniz. Bu yaklaşım kritik olmayan akışların kritik akışları olumsuz yönde nasıl etkileyebileceğini en aza indirmeye yardımcı olur.

  • Mantıksal segmentasyon: Akışları yazılım düzeyinde yalıtmak için Docker veya Kubernetes gibi sanallaştırma ve kapsayıcılama araçlarını kullanın. Kritik akışları sanal makinelere (VM) ayırabilirsiniz. Bunu yaparak, bağımlılıkları ve diğer akışlardan olası müdahaleyi azaltarak yalıtılmış bir ortam oluşturursunuz.

  • Kapasite ayırma: Kritik akışlar için CPU, bellek ve disk G/Ç gibi sabit bir kapasite kümesini açıkça ayırın. Bu ayırma, kritik akışların her zaman verimli çalışmak için yeterli kaynağa sahip olmasını sağlar. Düzenleme platformlarını kullanarak kaynak kotaları veya sınırları ayarlayın. Kaynakları kritik akışlara açıkça ayırarak kaynak çekişmesini önler ve bunların çalışma şeklini öncelik sırasına eklersiniz.

Denge: Kaynak segmentasyonu maliyetleri etkiler. Kaynakları bir akışa ayırdığınızda genellikle maliyeti artırır ve bazı kaynakları az kullanılır durumda bırakırsınız. Kritik akışlardaki performans geliştirmelerini gerekçelendirmek için, iş etkisindeki artışın maliyetteki artıştan daha ağır basması gerekir.

Kapasite ayırmayı iyileştirme

Kritik akışları yalıtamıyorsanız, bir sonraki en iyi seçenek kullanılabilir kapasiteye erişimde kritik akışların önceliğini belirlemedir. Kapasite ayırmanın iyileştirilmesi, kullanılabilir kapasiteyi kritikliklerine göre farklı akışlara stratejik olarak dağıtmakla ilgili. Kapasite CPU, bellek, depolama ve ağ bant genişliğini içerir. Amaç, en kritik akışların (en yüksek öncelikli) etkili bir şekilde çalışması için gerekli kapasiteyi aldığından emin olmaktır. Kapasite ayırmaya karar vermek için şu stratejileri göz önünde bulundurun:

  • Kaynak kapasitesini değerlendirme: Akışlara ne kadar kaynak kapasitesi ayrılabileceğini değerlendirin. Kapasite CPU, bellek, depolama ve ağ bant genişliği gibi kaynakları içerebilir. Altyapınızın veya ortamınızın sınırlamalarını ve kısıtlamalarını anlayın.

  • Akış gereksinimlerini analiz etme: Her akışın kaynak gereksinimlerini analiz edin. Akışın verimli çalışması için gereken kaynakları anlayın. Her akış için CPU kullanımı, bellek gereksinimleri ve ağ bant genişliği gibi kaynak taleplerini belirleyin.

  • Ayırmaların önceliğini belirleme: Kullanılabilir kaynak kapasitesini akışların kaynak gereksinimleriyle eşleştirin. Kaynakları akış önceliklerine göre ayırarak yüksek öncelikli akışların gereksinimlerini karşılamak için gerekli kaynakları almasını sağlayın. En sıkı kısıtlamalarınızın nerede olduğunu anlayın ve ihtiyaç duyulan kapasite ayırmalarını iyileştirin. Örneğin kuyruklar dakikada yalnızca bazı iletileri işleyebilir, ancak bazı depolama sınırlarına ulaşmak zordur.

  • Hız sınırlamayı kullanma: Kritik akışların performans hedeflerini karşılamak için ihtiyaç duydukları kaynakları kullanabilmesini sağlamak için kritik olmayan akışlara ve görevlere hız sınırları uygulayın. Hız sınırları, düşük öncelikli akışların ve kullanıcıların kısıtlanmış kaynaklara yapabilecekleri istek sayısını sınırlar. Örneğin, ayrıcalık dışı istekleri API ile sınırlayabilirsiniz. Daha fazla bilgi için bkz. .NET'te Hız Sınırlama düzeni ve HTTP işleyicisini sınırlayan hız.

  • Öncelikli kuyruk işlemeyi kullan: Öncelikli kuyruk işleme, belirli isteklere yüksek öncelik verir. Kuyruklar genellikle ilk gelen ilk çıkar (FIFO) yapısına sahiptir, ancak kuyruğa eklediği iletilere öncelik atamak için uygulamanızı güncelleştirebilirsiniz. Kritik akışlara ve kullanıcılara öncelik vermek için bu özelliği kullanın. Daha fazla bilgi için bkz . Öncelik Sırası düzeni.

Risk: Kritik akışların gereksinimlerini bir iş yükünün genel performansıyla dengelemek zor olabilir. Kritik akışlara öncelik vermelisiniz ancak kritik olmayan akışları ihmal etmemelisiniz. bir iş yükünün genel performans verimliliği tüm akışlara bağlıdır. İhmal edilen kritik olmayan akışlar tüm kullanıcıları etkileyen sorunlar oluşturabilir. Önemsiz öğelerden çok fazla gürültü, kritik öğelerden dikkat çeker. Ancak çok az kirlilik tüm iş yüküne zarar verebilir. Veri miktarı ve uyarı sayısı bu dengeli öncelikleri yansıtmalıdır.

Azure kolaylaştırma

Akışları tanımlama ve izleme: Azure, iş yükünüzdeki kritik akışların performansını izlemenize yardımcı olacak farklı çözümler sunar. Azure İzleyici, Azure İzleyici Günlükleri ve Azure Uygulaması İçgörüleri, çeşitli uygulama ve iş yükü türleri için kapsamlı izleme özellikleri sunan hizmetlerden bazılarıdır.

Kapasite ayırmalarını iyileştirme: Bazı Azure hizmetleri, kritik akışlara kapasite ve kaynak ayırmak için kaynak segmentasyonu, mantıksal segmentasyon ve kapasite ayırma tekniklerini destekler. Ayrı kaynaklar oluşturma, yoğunluğu artırma, sanallaştırma ve kapsayıcılama kullanma ve kaynakları kritik akışlara açıkça ayırma gibi tekniklerle kritik akışları yalıtabilirsiniz.

Azure API Management gibi bazı Azure hizmetleri, hız sınırlama için yerleşik ilkeler sağlar. Azure ayrıntılı rehberlik ve Hız Sınırlama tasarım deseninin örnek bir uygulamasını sağlar.

Azure, öncelikli kuyruk işlemeyi destekler. Azure İşlevleri, kuyruktaki veya konu başlığındaki yeni bir ileti dahil olmak üzere çeşitli yollarla tetikleyebileceğiniz olay odaklı işlevler sağlar. İletileri önceliklerine göre işlemek için Azure İşlevleri Azure Kuyruk Depolama veya Azure Service Bus birleştirin.

Performans Verimliliği denetim listesi

Önerilerin tamamına bakın.