Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu Azure Well-Architected Framework Performans Verimliliği denetim listesi önerisi için geçerlidir:
| PE:04 | Davranışların zaman içinde temellere göre analiz edilebilmesi ve düşüş, verimsizlik ve ölçeklendirme boşluklarını algılamak için kullanılabilmesi için tutarlı performans ölçümü oluşturun. |
|---|
Performans verileri olmadan, temel sorunlar ve iyileştirme fırsatları dikkate alınmaz ve kullanıcı deneyiminin düşmesine neden olur.
Bu makalede, temelleri oluşturmak ve iş yükü genelinde performans düşüşü belirlemek için gecikme süresi, aktarım hızı ve kaynak davranışını yakalayan çok katmanlı performans ölçümü uygulamaya yönelik tasarım stratejileri açıklanmaktadır.
Bu makaledeki temel stratejiler, izleme sistemi tasarlamaya yönelik OE:07 Mimari stratejileri bölümünde açıklanan gözlemlenebilirlik temel operasyonel uygulamasına dayandırılmaktadır. İzleme uygulamasını uygulama yönergelerini İzleme Tasarımı Kılavuzu'nda bulabilirsiniz. Önce bu kaynakları gözden geçirmenizi öneririz. Bu kılavuzdaki önerilerin kapsamı performans olarak belirlenmiştir. Güvenilirlik hakkında bilgi için bkz. Güvenilir izleme ve uyarı stratejisi tasarlamaya yönelik RE:10 Mimari stratejileri.
Tanımlar
| Süre | Tanım |
|---|---|
| Etkinlik günlükleri | Kaynak silme gibi kaynaklarda yönetim işlemlerini izleyen günlükler. |
| Uygulama günlükleri | Oturum açmalar ve veritabanı bağlantısı hataları gibi uygulama olayları, hatalar ve diğer etkinliklerle ilgili bilgileri izleyen günlükler. |
| Uygulama performansı izleme (APM) aracı | Bir uygulamanın performansını izleyen ve raporlayan bir araç. |
| Baselines | Zaman içinde kaymayı, regresyonları ve iyileştirmeleri algılamak için başvuru noktası olarak kullanılan beklenen sistem performansı ölçümleri. |
| Kod enstrümantasyonu | Uygulama kodu açısından performans ölçümlerinin doğrudan veya dolaylı olarak yakalanması. Yakalanan ölçümler akış ölçümlerini, kaynak kullanımını ve dile veya çalışma zamanına özgü ölçümleri içerir. |
| Dağıtılmış izleme | Uçtan uca işlem akışlarını anlamak için dağıtılmış iş yükü bileşenleri arasında ölçümleri toplama ve ilişkilendirme. |
| Latency | İstek başlatma ile yanıt alma arasındaki gecikme süresi, sistem yanıt hızını ölçme. |
| Metrics | Zaman içindeki iş yükü performansı davranışını kaydeden sayısal ölçümler, genellikle analiz için toplanır. |
| Yüzdebirlik dilimler (p50, p95, p99) | Performans dağılımını gösteren istatistiksel ölçüler; p50 tipik performansı temsil eder, p95 çoğu kullanıcı deneyimini yük altında gösterir, p99 en kötü durum performansını yakalar. |
| Platform ölçümleri | belirli bir zamanda iş yükü performansını kaydeden sayısal değerler. |
Yüzdebirlik tabanlı ölçümleri kullanma
Gecikme süresi, yanıt süresi veya yükleme süreleri gibi performans ölçümlerini ortalamalarla değil yüzdebirlik dilimlerle (p50, p95, p99) ölçün. Ortalamalar yanıltıcı olabilir. İsteklerin çoğu hızlıysa ancak birkaçı son derece yavaşsa, ortalama kötü deneyimi gizler.
Yüzdebirlik değerler, kullanıcı deneyimini anlamak için önemli olan kuyruk davranışını gösterir. p50 tipik performansı temsil eder, p95 çoğu kullanıcının yük altında neler yaşadığını gösterir ve p99 en kötü durum performansını veya aykırı değerleri yakalar.
İzleme araçlarınızı kullanarak performans verilerini toplayın ve bunları tanımlı zaman pencerelerindeki yüzdebirlik dilimler olarak temsil edin. İzleme, uyarı ve performans analizi için bunları temel olarak kullanın.
Performans geliştirme sınırlarınızı tanımlama
Ölçümlerinize tam olarak nelerin dahil olduğunu bilmeniz için net performans sınırları tanımlayın. Gecikme süresini tek bir sayı olarak işlemek yerine sistem genelinde ayırma. Örneğin, uç hizmetler, ağ geçitleri, hesaplama ve bağımlılıklar gibi her bir katmana zaman atayarak gecikmelerin aslında nerede meydana geldiğini görebilirsiniz.
Kontrol ettiğiniz şeyleri, kodunuz, hizmetleriniz, altyapınız ve doğrudan bağımlılıklarınız ile istemci tarafı koşulları, DNS çözümlemesi, ISS gecikme süresi veya cihaz kısıtlamaları gibi dış faktörlerden ayırın. Bu ayrım yanlışlığı önler ve iyileştirmeyi değişiklik yapabileceğiniz alanlara odaklanırken, uçtan uca kullanıcı deneyiminin tamamını yansıtmaya devam eder.
Performans sorunlarının kullanıcı deneyimini ne zaman ve nerede etkilediğini değerlendirin. Tasarım yoluyla bu düşüşü telafi edin veya sistemin denetlenebilir bölümlerindeki iyileştirmelerle azaltın.
Sinyalleri ortama ve amaca göre segmentlere ayırma
Her sinyalin net bir bağlam yansıtması için performans verilerini segmentlere ayırın. Farklı davranan veya farklı kararlar veren sinyallerin karıştırılmasını önlemek için ortama ve amaca göre ayırın.
Üretim ve üretim dışı verileri ayrı tutun. Üretim verileri gerçek kullanıcı etkisini yansıtır ve izleme ile uyarıları yönlendirmelidir. Üretim dışı veriler test ve ayarlama için kullanışlıdır, ancak üretimle karıştırılması sonuçları çarpıtır ve gerçek sorunları gizler.
Performans ölçümlerini iş ölçümlerinden ayırın. Performans ölçümleri sistem davranışını ve iş yükü durumunu, iş ölçümleri ise sonuçları izler. Çakıştığında bile, her birinin bağımsız olarak analiz edilebilmesi ve kullanılabilmesi için bunları ayrı akışlarda tutun.
Kapsamlı ve eyleme dönüştürülebilir performans uyarıları oluşturma
Uyarı vermenin amacı, performans düşüşünün kullanıcı tarafından görünür hale gelmeden veya iş açısından etkilenmeden önce algılanmasıdır. İki düzeyde uyarılar oluşturun: uçtan uca kullanıcı deneyimi ve yük altındaki kritik sistem yollarını temsil eden temel iç işlemler.
Hem hedefler hem de uyarılar için her ortamda tek ve tutarlı bir veri kümesi kullanın. Uyarılar performans hedeflerinizden farklı verileri temel alırsa, güvenilir olmaz ve güvenilmez hale gelir.
Eyleme dönüştürülebilir ve performans sonuçlarına açıkça bağlı uyarılar oluşturun. Her uyarı, hangi eşiğin sürekli ihlale sahip olduğunu, olası etkiyi ve ilgili bileşenleri belirterek nerede araştırma yapılacağı ve nelerin etkileneceği konusunda net bir bilgi vermelidir. Standart, iyi bilinen eşiklerle başlayın, ardından gözlemlenen sistem davranışına ve iş yükü özelliklerine göre bunları zaman içinde geliştirin.
Performans uyarılarını bir sağlık modeline dayandırmayı göz önünde bulundurun. Tek tek ölçümlerde uyarı vermek yerine, performans açısından kritik kaynakları birden çok performans sinyaliyle göstermek için bir sistem durumu modeli kullanın. Bileşik performans sorunlarının çok sayıda eşik aşımı yerine tek ve eyleme dönüştürülebilir bir uyarı olarak görünmesi için sağlık durumu geçişleri hakkında uyarı verin. Azure İzleyici sistem durumu modelleri, varlık düzeyinde uyarı ve bağımlılıklar arasında hiyerarşik yayma ile bu düzeni destekler.
Dış bağımlılık üzerinde doğrudan uyarı mümkün olmadığında, sistem performansı üzerindeki etkisini yaklaşık olarak belirtmek için bağımlılık çağrısı süresi, hata oranları veya zaman aşımı davranışı gibi dolaylı sinyalleri kullanın.
Esnekliği izleme
Sisteminizin talepteki değişikliklere nasıl yanıt verdiğini ölçün ve olayları ölçeklendirin.
Başlatma ek yükünün özellikle ölçeği genişletme olayları sırasında yanıt verme hızını nasıl etkilediğini anlamak için soğuk başlatma ve başlatma gecikme süresini izleyin. Sistemin yükteki değişikliklere ne kadar hızlı uyum sağladığını ve ölçeklendirme eylemlerinin talebe uygun olup olmadığını değerlendirmek için ölçeği genişletme ve ölçeklendirme davranışını izleyin.
Zaman içindeki performansı izleme
Tasarımınızdaki değişiklikler ve dış faktörlerle performansın nasıl geliştiğini izleyin.
Beklenen sistem performansını temsil eden temeller oluşturun, ardından regresyonlar ve iyileştirmeler de dahil olmak üzere kaymayı algılamak için geçerli davranışı bunlarla karşılaştırın.
Performans temel düzeylerini temsil etmek ve performans açısından kritik kaynaklar için sağlıklı, bozulmuş ve sağlıksız durumların neyi ifade ettiğini açıkça nicelendirmek üzere bir sistem durumu modeli kullanın. Azure İzleyici durum modelleri, zaman içinde uyum sağlayan statik eşikleri ve dinamik temel değerleri destekleyerek sapma algılamayı otomatikleştirir.
Performans değişikliklerini dağıtımlar, yapılandırma güncelleştirmeleri ve ölçeklendirme eylemleri gibi işlem olaylarına bağlayın. Davranıştaki kaydırmaların net bir bağlama sahip olması ve olası nedenlere geri döndürülebilmesi için bu olaylarla zaman çizelgelerine açıklama ekleyin.
Mühendislik kararları için geri bildirim döngüsü olarak bu sürekli görünürlüğü kullanın. Planlama ve öncelik belirleme ile ilgili performans içgörüleri besleyin ve bunları yalnızca olay yanıtı yerine normal çalışmaya giriş olarak değerlendirin.
Sistem geliştikçe performans hedeflerini sürekli geliştirin. Hedeflerin gerçekçi ve gerçek kullanıcı deneyimiyle uyumlu kalması için gözlemlenen davranış ve kullanım desenlerine göre SLO'ları, eşikleri ve beklentileri ayarlayın.
Uygulama performans verilerini toplama
Öncelikle izleme kodu aracılığıyla toplanan aktarım hızı, gecikme süresi ve tamamlanma süreleri gibi uygulamanın performans ölçümlerine sahip olmanız gerekir.
Performansın en görünür olduğu kritik yürütme yollarını izleme: anahtar istek akışları, yoğun kaynak kullanımlı işlemler ve dış bağımlılıkların veya yeniden denemelerin gerçekleştiği noktalar. Toplam yürütme süresi ve katkıda bulunan adımların ölçülebilmesi için uçtan uca işlem görünürlüğünden emin olun.
Üç çekirdek performans sinyali türü yakalayın:
- Toplu performans davranışına yönelik ölçümler (gecikme süresi dağılımları, aktarım hızı, hata oranları)
- Sürenin istek yolları ve sistem bileşenleri arasında nasıl dağıtıldığını anlamak için izlemeler
- Belirli adımlarda veya olaylarda ayrıntılı yürütme bağlamı için günlükler
Performans verilerinin sistem katmanları ve hizmetler arasında ilişkilendirilmesi için bu sinyaller arasında tutarlı meta veriler kullanın.
İş yüküne özgü davranışı veya performans sorunlarını açıklamak için ek ayrıntı düzeyi gerekmediği sürece platform tarafından zaten kullanıma sunulan düşük düzey performans sinyallerini yinelemekten kaçının.
Kaynak performansı verilerini toplama
Altyapı bileşenlerinin yük altında nasıl davrandığını ve genel iş yükü performansına nasıl katkıda bulunduklarını anlamak için kaynak düzeyinde performans verileri toplayın.
Her hizmet, sistem durumu ve performans özelliklerini yansıtan platforma özgü ölçümleri kullanıma sunar. Bu verileri dışarı aktarmak için tanılama ayarını kullanarak kısa süreli platform saklamanın ötesinde uyarılara, panolara ve daha uzun süreli analizlere erişilebilir.
Tüm kaynaklar için ölçümleri ve günlükleri toplayın. Eksik tedarikin gecikmeye ve performansın yük altında azalmasına neden olmadığını doğrulamak için beklenen aralıklara karşı işlem ve depolama kullanımını izleyin. Fazla sağlama, P99 kullanımına bakarak ve kaynaklarınızdaki kalan bölümle karşılaştırılarak bu verilerle de algılanabilir.
Kaynak performansının bir parçası olarak ağ trafiğini izleme. İş yükü performansını etkileyebilecek gecikme, tıkanıklık ve veri aktarımı desenlerini anlamak için alt ağlar ve hizmet sınırları arasındaki trafik akışını analiz edin.
Veritabanı ve depolama verilerini toplama
Veritabanı ve depolama sistemleri performans sorunlarını belirlemek, kapasiteyi doğrulamak ve iş yükü davranışını anlamak için özel performans sinyalleri üretir. Bu sinyaller genellikle yerleşik izleme araçlarından ve sistem tarafından oluşturulan günlüklerden gelir.
Önemli performans boyutlarına odaklanın:
| Alan | Ölçülecek şeyler | Size ne söyler? |
|---|---|---|
| Verimlilik | Zaman içinde okuma/yazma hacmi | Veri aktarım kapasitesi |
| Latency | Depolama işlemi başına süre | Depolamanın yanıt verme hızı |
| IOPS | Saniye başına okuma/yazma işlemleri | İşlem işleme özelliği |
| Kapasite kullanımı | Kullanılan ve kullanılabilir depolama alanı karşılaştırması | Ölçeklendirme ve kapasite planlaması gereksinimleri |
Veritabanları için izlemeyi iş yüküne özgü davranışlara genişletin:
| Alan | Ölçülecek şeyler | Size ne söyler? |
|---|---|---|
| Sorgu performansı | Yürütme süresi, sıklık, kaynak kullanımı | Veri erişim desenlerinin verimliliği |
| İşlem performansı | Süre, eşzamanlılık, kilit çekişmesi | Çekişme ve işlem verimliliği |
| Dizin performansı | Parçalanma, kullanım, iyileştirme etkisi | Sorgu hızlandırma yapılarının etkinliği |
| Kaynak kullanımı | CPU, bellek, disk, ağ | Sistem düzeyinde kısıtlamalar |
| Bağlantı ölçümleri | Etkin, başarısız, durdurulan bağlantılar | Kararlılık ve bağlantı basıncı |
| İşlem hızı | Saniye başına işlem | İş yükü yoğunluğu ve zaman içindeki değişiklikler |
| Hata oranları | Veritabanı hataları ve arızaları | Güvenilirlik ve performans düşüşü sinyalleri |
Yavaş sorgular, kaynak doygunluğu ve yapısal verimsizlikler arasında ayrım yapmak için bu sinyalleri birlikte kullanın. Bu, hem depolama sistemlerinde hem de veritabanı iş yüklerinde hedeflenen iyileştirmeyi etkinleştirir.
İşletim sistemi performans verilerini toplama
Altyapı tabanlı iş yükleri için, işlem kaynaklarının nasıl kullanıldığı ve kaynak kısıtlamalarının nerede ortaya çıkabileceğini anlamak için işletim sistemi düzeyinde ölçümler toplayın.
Yük altındaki sistemin zaman tabanlı davranışını yakalamak için düzenli aralıklarla örnek işletim sistemi performans sayaçları.
| Alan | Ölçülecek şeyler | Neyi gösterir? |
|---|---|---|
| İşlemci (CPU) | CPU kullanımı (kullanıcı/ayrıcalıklı), CPU kuyruğu uzunluğu | Hesaplama doygunluğu ve zamanlama baskısı |
| Processes | İş parçacığı sayısı, kol sayısı | Uygulama ve işletim sistemi düzeyinde işlem yükü |
| Memory | Rezerve edilmiş bellek, kullanılabilir bellek, sayfalama hızı, takas alanı kullanımı | Bellek baskısı ve sayfalama etkinliği |
| Disk | Okuma/yazma hızı, aktarım hızı, disk kullanımı | Depolama G/Ç performansı ve performans sorunları |
| Network | Arabirim aktarım hızı, RX/TX hataları | Ağ kapasitesi ve iletim sorunları |
kaynak doygunluğunu işletim sistemi düzeyinde belirlemek ve uygulama düzeyinde verimsizlikler ile altyapı kısıtlamaları arasında ayrım yapmak için bu sinyalleri kullanın.
Gerektiğinde yapay veri oluşturma
Sistem tutarlı bir şekilde kullanılmıyorsa, trafik geri döndüğünde iyi performans gösterip göstermeyeceğini söylemek zordur.
Bu sorunu çözmek için sisteminiz üzerinden otomatik istekler gönderen yapay işlemler kullanın. Bunlar gerçek kullanıcıları veya verileri etkilemeden gerçek kullanımı simüle eder. Bu, sisteminizin bölümlerini etkin tutmaya, tutarlı performans ölçümleri oluşturmaya ve düzensiz kullanımın gizleyebileceği desenleri (günün saati sorunları gibi) ortaya çıkarmakta yardımcı olur.
Azure kullanımının kolaylaştırılması
Azure İzleyici , tüm iş yükünüz genelinde performans verilerini toplamak, analiz etmek ve yanıtlamak için birleşik bir platform sağlar. Uygulamalardan, altyapıdan ve dış kaynaklardan verileri ortak bir veri platformunda toplar.
Veri toplama ve depolama: Yapılandırılabilir bekletme ilkeleriyle performans verilerinizi merkezileştirmek için Log Analytics çalışma alanlarını kullanın. Verileri ortam veya uyumluluk gereksinimlerine göre segmentlere ayırmak için birden çok çalışma alanı oluşturun.
Health modelleme: Azure İzleyici sistem durumu modelleri ölçümleri, günlükleri ve izlemeleri Azure kaynaklar ve bileşenler arasında eyleme dönüştürülebilir sistem durumu durumlarıyla ilişkilendirerek iş yükü durumunu tanımlamanıza, ölçmenize ve görselleştirmenize yardımcı olur.
Uygulama izleme: Application Insights istek oranları, yanıt süreleri ve özel durumlar dahil olmak üzere uygulama düzeyinde telemetri toplar. Dağıtılmış bileşenler arasında performansı ilişkilendirmek için dağıtılmış izlemeyi etkinleştirin.
Altyapı izleme: Platform günlüklerini ve ölçümlerini toplamak için tüm Azure hizmetlerinde tanılama ayarlarını etkinleştirin. Ayrıntılı VM performans verileri için Azure Tanılama uzantısını kullanın. Belirli bir platform için telemetri seçeneklerini keşfedin. Örneğin, Kubernetes kümeleri Prometheus tümleştirmeleri aracılığıyla zengin performans telemetrisi yayar.
Veritabanı ve depolama: Azure İzleyici, Azure SQL Veritabanı, MySQL, PostgreSQL ve depolama hizmetleri için yerleşik izleme sağlar. Azure Depolama Analizi Blob, Tablo ve Kuyruk Depolama genelinde aktarım hızı ve gecikme süresi gibi temel performans göstergelerini izler.
Uyarı ve analiz: Özelleştirilebilir eşikler, zaman pencereleri ve eylemler (e-posta, web kancaları, Azure İşlevleri) ile uyarı kuralları oluşturun. Performans verilerini çapraz sorgulamak ve ilişkilendirmek için Azure İzleyici Günlüklerini kullanın. Fiyatlandırma ayrıntıları için bkz. Azure İzleyici fiyatlandırması.
Examples
- Temel yüksek oranda kullanılabilir alanlar arası yedekli uygulama hizmetleri web uygulaması
- Azure Kubernetes Service'te (AKS) bir mikro hizmet uygulamasını izleme
- Azure platformları giriş bölgesi bileşenlerini izleme
İlgili bağlantılar
Performans Verimliliği denetim listesi
Öneriler kümesinin tamamına bakın.