Gürültülü komşu antimodel
Çoklu kiracı sistemleri, kaynakları kiracılar arasında paylaşır. Bu, bir kiracının etkinliğinin başka bir kiracının sistem kullanımıyla ilgili olumsuz bir etkiye sahip olabileceği anlamına gelir.
Sorun açıklaması
Birden çok müşteri veya kiracı tarafından paylaşılacak bir hizmet oluşturduğunuzda, bu hizmeti çoklu kiracıolarak oluşturabilirsiniz. Çoklu kiracı sistemlerinin bir avantajı, kaynakların havuza alınabileceği ve kiracılar arasında paylaşılabilecek bir avantajdır. Bu genellikle daha düşük maliyetlerle ve daha iyi verimlilik elde ediyor. Ancak, tek bir kiracı sistemde kullanılabilen kaynakların orantısız miktarını kullanıyorsa, sistemin genel performansı düşebilir. Başka bir kiracının etkinlikleri nedeniyle, bir kiracının performansı düşürülmediğinde gürültülü komşu sorun oluşur.
İki kiracıya sahip bir örnek çoklu kiracı sistemi düşünün. Kiracının kullanım desenlerinin ve kiracı B 'nin kullanım desenlerinin çakıştığı, en yoğun zamanlarda Toplam kaynak kullanımının sistem kapasitesinden yüksek olması anlamına gelir.

Büyük olasılıkla kiracının isteği geldi ve diğer kiracı, gürültülü bir komşu sorunu yaşayacaktır. Alternatif olarak, her iki kiracı de performanslarını bulmayabilir.
Gürültülü komşu sorun, her bir kiracı görece düşük miktarda sistem kapasitesini tüketen bile meydana gelir, ancak birçok kiracının toplu kaynak kullanımı genel kullanım için en yüksek düzeyde sonuçlanır:

Bu durum, hepsi benzer kullanım desenlerine sahip birden çok kiracıya sahip olduğunuzda veya sistemde toplu yük için yeterli kapasite sağlayamadığınız durumlarda gerçekleşebilir.
Sorunun çözümü
Gürültülü komşu sorunları, çok kiracılı sistemlerdeki bir karşı risk taşır ve gürültülü bir komşudan etkilenip etkilenmeme olasılığını tamamen ortadan kaldırmak mümkün değildir. Ancak, hem istemcilerin hem de hizmet sağlayıcılarının, gürültülü komşu sorunları olasılığını azaltmak veya gözlemlendiklerinde etkilerini azaltmak için kullanabilecekleri bazı adımlar vardır.
İstemcilerin gerçekleştirebileceği eylemler
- Varsa ayrılmış kapasiteyi satın alın. örneğin, Cosmos DB kullanırken, ayrılmış aktarım hızısatın alarak ve expressroute kullanırken, performansa duyarlı ortamlar için ayrı devreler sağlayın.
- Hizmetin tek kiracılı örneğine veya daha güçlü yalıtım garantisi olan bir hizmet katmanına geçiş yapın. örneğin, Service Bus kullanırken premium katmana geçişyapın ve redin için Azure önbelleği kullanırken standart veya premium bir katman önbelleği sağlayın.
- Hizmette gereksiz istek yapılmasını azaltmak için uygulamanızın hizmet azaltmasınıişlemesini sağlayın.
Hizmet sağlayıcılarının gerçekleştirebileceği eylemler
- Her bir kiracı için hem genel hem de sisteminiz için kaynak kullanımını izleyin. Kaynak kullanımındaki ani artışları algılamak için uyarıları yapılandırın ve mümkünse, ölçeklendirerek, otomatik olarak bilinen sorunları azaltmak için Otomasyonu yapılandırın.
- Sistemi çok fazla olan ve başkalarının kullanabildiği kapasiteyi azaltan tek bir kiracının oluşmasını önlemek için kaynak İdaresi 'ni uygulayın. Bu, kısıtlama düzeninde veya hız sınırlandırma düzeniylekota zorlamasına yol açabilir.
- Daha fazla altyapı sağlamayı düşünün. Bu, bazı çözüm bileşenlerinizi yükselterek ölçeği büyütmeyi gerektirebilir veya dağıtım damgaları modeliniizlerseniz parçalama modeliniveya damgaları izlerseniz ek parçalar sağlanarak ölçeklendirmeyi gerektirebilir.
- Kiracıların önceden sağlanmış veya ayrılmış kapasite satın almalarına izin vermeyi düşünün. Bu, Kiracılarınızın iş yükünü yeterince işlediği konusunda daha fazla belirsizlik sağlar.
- Kaynak kullanımını düzgünleştirmek için yaklaşımlar düşünün:
- Çözümünüzün birden çok örneğini barındırdıysanız, kiracılar veya damgalar genelinde kiracıların yeniden dengelenmesini göz önünde bulundurun. Örneğin, kiracıların kullanımlarındaki en sivri noktaları düzleştirmek için, birden çok damga genelinde öngörülebilir ve benzer kullanım desenlerine sahip kiracılar yerleştirmeyi düşünün.
- Zamana duyarlı olmayan arka plan işlemleriniz veya Kaynak yoğunluklu iş yükleriniz olup olmadığını göz önünde bulundurun. Zamana duyarlı iş yükleri için en yüksek kaynak kapasitenizi korumak üzere bunları zaman uyumsuz zamanlarda çalıştırın.
- Hizmetlerinizin, gürültülü komşu sorunları azaltmak için denetimler sağlayıp sağlamamadığını göz önünde bulundurun. örneğin, kubernetes kullanırken, pod sınırlarını kullanmayı düşününve Service Fabric kullanırken, yerleşik idare yeteneklerini kullanmayı göz önünde bulundurun.
- Uygulanabiliyorsa, kiracının gerçekleştirebileceği işlemleri kısıtlamayı göz önünde bulundurun. Örneğin, kiracıların çok büyük veritabanı sorguları çalıştıracak işlemleri yürütmesini önleyin. Bu, kiracının diğer kiracıları olumsuz yönde etkileyebilecek işlemler yapma riskini azaltır.
- Uygulanabiliyorsa, hizmet kalitesi (QoS) sistemi sağlamayı düşünün. QoS uyguladığınızda, bazı işlemlere veya iş yüklerinden diğerlerinin önüne öncelik verir. Düzenleme QoS 'yi tasarım ve mimarinize göre sağlamak için, kaynaklarınız üzerinde basınç olduğunda yüksek öncelikli işlemlerin öncelikli olmasını sağlayabilirsiniz.
Dikkat edilmesi gerekenler
- Çoğu durumda, tek tek kiracılar gürültülü komşu sorunlara yol açmaz. Tek kiracılar, iş yüklerinin başkaları için gürültülü komşu sorunlara neden olduğunu bile fark etmeyebilir.
- Ancak, kiracıların, tek tek veya dağıtılmış bir hizmet reddi (DDoS) saldırısı yürüterek, bir hizmete saldırmak için paylaşılan bileşenlerde güvenlik açıklarını kullanması de mümkündür.
- Nedeni ne olursa olsun, bu sorunları kaynak idare sorunları olarak değerlendirmek ve sorunu azaltmak için kullanım kotaları, azaltma ve idare denetimleri uygulamak önemlidir.
Not
İstemcilerinize, uyguladığınız herhangi bir daraltma veya hizmetinizde kullanım kotaları hakkında söylediğinizden emin olun. Başarısız istekleri güvenilir bir şekilde işleyebilmeleri ve uygulanan herhangi bir sınırlama ya da kota tarafından şaşırmamak önemlidir.
Sorunu algılama
Bir istemcinin perspektifinden, gürültülü komşu sorun genellikle başarısız sunucu istekleri olarak veya tamamlanması uzun süren isteklerin bildirimlerini alır. Özellikle, aynı istek diğer zamanlarda başarılı olursa ve rastgele başarısız olarak görünüyorsa, gürültülü bir komşu sorun olabilir. İstemci uygulamaları, hizmetlere yapılan isteklerin başarı oranını ve performansını izlemek için telemetri kaydını ve uygulamalar da karşılaştırma amaçları için temel performans ölçümlerini de kaydeder.
Bir hizmetin perspektifinden, gürültülü komşu sorun çeşitli yollarla görünebilir:
- Kaynak kullanımında ani artışlar. Normal taban çizgisi kaynak kullanımınızın net bir şekilde anlaşılmasının yanı sıra izleme ve uyarıları yapılandırmak için kaynak kullanımındaki ani artışları tespit etmek önemlidir. Hizmetinizin performansını veya kullanılabilirliğini etkileyebilecek kaynakların tümünü göz önünde bulundurtığınızdan emin olun. bunlar, sunucu CPU 'su ve bellek kullanımı, disk gç, veritabanı kullanımı, ağ trafiği ve Azure Cosmos DB istek birimleri gibi istek sayısı ve yapay ve soyut performans ölçümleri gibi yönetilen hizmetler tarafından kullanıma sunulan ölçümler içerir.
- Kiracı için bir işlem gerçekleştirilirken oluşan, kiracı, sistem kaynaklarının büyük bir bölümünü kullanmıyor olsa da oluşur. Böyle bir kalıp, kiracının gürültülü komşu sorunun kurbanı olduğunu gösterebilir. Kiracıya göre kaynak tüketimini izlemeyi düşünün. örneğin, Azure Cosmos DB kullanırken, her bir istek için kullanılan istek birimlerini günlüğe kaydetmeyi göz önünde bulundurun ve her kiracı için istek birimi tüketimini toplayabilmeniz için kiracının tanımlayıcısını telemetriye bir boyut olarak ekleyin.