Szerkesztés

Megosztás a következőn keresztül:


Zajos szomszéd antipattern

Azure

A több-bérlős rendszerek erőforrásokat osztanak meg a bérlők között. Mivel a bérlők ugyanazokat a megosztott erőforrásokat használják, az egyik bérlő tevékenysége negatív hatással lehet egy másik bérlő rendszerhasználatára.

A probléma leírása

Ha olyan szolgáltatást hoz létre, amelyet több ügyfél vagy bérlő oszt meg, több-bérlős szolgáltatásként is létrehozhatja azt. A több-bérlős rendszerek egyik előnye, hogy az erőforrások összevonása és megosztása a bérlők között. Ez gyakran alacsonyabb költségeket és jobb hatékonyságot eredményez. Ha azonban egyetlen bérlő aránytalan mennyiségű erőforrást használ a rendszerben, a rendszer általános teljesítménye szenvedhet. A zajos szomszédprobléma akkor fordul elő, ha az egyik bérlő teljesítménye egy másik bérlő tevékenységei miatt romlik.

Vegyünk egy példa több-bérlős rendszert két bérlővel. Az A bérlő használati mintái és a B bérlő használati mintái egybeesnek, ami azt jelenti, hogy csúcsidőben a teljes erőforrás-használat nagyobb, mint a rendszer kapacitása:

Két bérlő erőforrás-használatát bemutató ábra. Az A bérlő a rendszererőforrások teljes készletét használja fel, ami azt jelenti, hogy a B bérlői hibákat tapasztal.

Valószínű, hogy az elsőként érkezett bérlői kérés elsőbbséget élvez. Ezután a másik bérlő zajos szomszédproblémát fog tapasztalni. Másik lehetőségként mindkét bérlő teljesítménycsökkenést tapasztalhat.

A zajos szomszéd probléma akkor is előfordul, ha minden egyes bérlő viszonylag kis mennyiségű rendszerkapacitást használ fel, de számos bérlő együttes erőforrás-használata a teljes használat csúcsát eredményezi:

3 bérlővel rendelkező ábra, mindegyik a megoldás maximális átviteli sebességét csökkenti. A három bérlő összesen a teljes rendszererőforrásokat használja fel.

Ez akkor fordulhat elő, ha több olyan bérlője van, amelyek mindegyike hasonló használati mintákkal rendelkezik, vagy ha nem hozott létre elegendő kapacitást a rendszer kollektív terheléséhez.

A probléma megoldása

A zajos szomszédproblémák eredendően kockázatot jelentenek a több-bérlős rendszerekben, és nem lehet teljesen kiküszöbölni annak lehetőségét, hogy egy zajos szomszéd érintse őket. Vannak azonban olyan lépések, amelyeket az ügyfelek és a szolgáltatók is elvégezhetnek a zajos szomszédi problémák valószínűségének csökkentésére, vagy a megfigyelt hatások mérséklésére.

Az ügyfelek által végrehajtható műveletek

A szolgáltatók által végrehajtható műveletek

  • A rendszer erőforrás-használatának figyelése. Az összes erőforrás-használat és az egyes bérlők által használt erőforrások monitorozása. Riasztásokat konfigurálhat az erőforrás-használat kiugró számának észlelésére, és ha lehetséges, az automatizálást úgy konfigurálja, hogy automatikusan elhárítsa az ismert problémákat fel- vagy kiskálázással.
  • Erőforrás-szabályozás alkalmazása. Fontolja meg olyan szabályzatok alkalmazását, amelyek elkerülik, hogy egy bérlő túlterhelje a rendszert, és csökkentse a mások számára elérhető kapacitást. Ez a lépés kvótakényszerítés formáját öltheti a szabályozási mintán vagy a sebességkorlátozási mintán keresztül.
  • További infrastruktúra kiépítése. Ez a folyamat magában foglalhatja a megoldás egyes összetevőinek frissítésével történő vertikális felskálázást, vagy további szegmensek kiépítésével történő horizontális felskálázást, ha követi a horizontális skálázási mintát vagy a bélyegeket, ha követi az üzembehelyezési bélyegek mintáját.
  • Engedélyezze a bérlők számára, hogy előre kiosztott vagy fenntartott kapacitást vásároljanak. Ez a kapacitás nagyobb biztonsággal biztosítja a bérlők számára, hogy a megoldás megfelelően kezelje a számítási feladatokat.
  • A bérlők erőforrás-használatának simítására. Kipróbálhatja például az alábbi módszerek egyikét:
    • Ha a megoldás több példányát is üzemelteti, fontolja meg a bérlők újraegyensúlyozását a példányok vagy a bélyegek között. Fontolja meg például, hogy a bérlők több bélyegen is kiszámítható és hasonló használati mintákkal rendelkezzenek, hogy elsimíthassák a használatuk csúcsait.
    • Fontolja meg, hogy rendelkezik-e olyan háttérfolyamatokkal vagy erőforrás-igényes számítási feladatokkal, amelyek nem időérzékenyek. Futtassa ezeket a számítási feladatokat aszinkron módon csúcsidőn kívül, hogy megőrizze a csúcserőforrás-kapacitást az időérzékeny számítási feladatokhoz.
  • Ellenőrizze, hogy az alsóbb rétegbeli szolgáltatások biztosítanak-e vezérlőket a zajos szomszédproblémák megoldásához. Például a Kubernetes használatakor fontolja meg a podkorlátok használatát, a Service Fabric használatakor pedig fontolja meg a beépített szabályozási képességek használatát.
  • Korlátozza a bérlők által végrehajtható műveleteket. Például megakadályozhatja, hogy a bérlők olyan műveleteket hajtsanak végre, amelyek nagyon nagy adatbázis-lekérdezéseket futtatnak, például a maximális visszaadható rekordszám vagy a lekérdezések időkorlátjának megadásával. Ez a művelet csökkenti annak kockázatát, hogy a bérlők olyan műveleteket hajtanak végre, amelyek negatív hatással lehetnek más bérlőkre.
  • Szolgáltatásminőségi (QoS) rendszer biztosítása. A QoS alkalmazásakor rangsorol néhány folyamatot vagy számítási feladatot mások előtt. A QoS tervezésbe és architektúrába való beleképezésével biztosíthatja, hogy a magas prioritású műveletek elsőbbséget élveznek az erőforrásokra nehezedő nyomás esetén.

Megfontolások

A legtöbb esetben az egyes bérlők nem kívánnak zajos szomszédproblémákat okozni. Előfordulhat, hogy az egyes bérlők nem is tudják, hogy a számítási feladataik zajos szomszédproblémákat okoznak mások számára. Előfordulhat azonban, hogy egyes bérlők kihasználhatják a megosztott összetevők biztonsági réseit egy szolgáltatás megtámadásához egyenként vagy elosztott szolgáltatásmegtagadási (DDoS) támadás végrehajtásával.

Az októl függetlenül fontos, hogy ezeket a problémákat erőforrás-szabályozási problémákként kezelje, és a probléma megoldásához használati kvótákat, szabályozást és szabályozási vezérlőket alkalmazzon.

Feljegyzés

Győződjön meg arról, hogy minden alkalmazott szabályozásról vagy a szolgáltatás használati kvótáiról tájékoztatja az ügyfeleit. Fontos, hogy megbízhatóan kezeljék a sikertelen kérelmeket, és hogy ne lepődjön meg az Ön által alkalmazott korlátozások vagy kvóták.

A probléma észlelése

Az ügyfél szempontjából a zajos szomszéd probléma általában sikertelen kiszolgálókérésekként vagy hosszú ideig tartó kérelmekként jelentkezik. Különösen, ha ugyanaz a kérés más időpontokban sikeres, és véletlenszerűen meghiúsul, előfordulhat, hogy zajos szomszéd probléma merül fel. Az ügyfélalkalmazásoknak telemetriát kell rögzítenie a szolgáltatásokra irányuló kérések sikerességi arányának és teljesítményének nyomon követéséhez, és az alkalmazásoknak összehasonlítási célokra is rögzítenie kell az alapkonfiguráció teljesítménymetrikáit.

A szolgáltatás szempontjából a zajos szomszéd probléma többféleképpen is megjelenhet:

  • Kiugróan magas az erőforrás-használat. Fontos, hogy tisztában legyen a normál alapkonfigurációs erőforrás-használattal, és konfigurálja a figyelést és a riasztásokat az erőforrás-használat kiugró értékeinek észleléséhez. Győződjön meg arról, hogy minden olyan erőforrást figyelembe vesz, amely befolyásolhatja a szolgáltatás teljesítményét vagy rendelkezésre állását. Ezek az erőforrások olyan metrikákat tartalmaznak, mint a kiszolgáló PROCESSZOR- és memóriahasználata, a lemez I/O-jának, az adatbázis-használatnak, a hálózati forgalomnak és a felügyelt szolgáltatások által közzétett metrikáknak, például a kérések számának, valamint a szintetikus és absztrakt teljesítménymetrikáknak, például az Azure Cosmos DB-kérésegységeknek.
  • Hibák a bérlői művelet végrehajtásakor. Keresse meg különösen azokat a hibákat, amelyek akkor fordulnak elő, ha egy bérlő nem használja a rendszer erőforrásainak nagy részét. Egy ilyen minta azt jelezheti, hogy a bérlő a zajos szomszéd probléma áldozata. Érdemes lehet bérlőnként nyomon követni az erőforrás-felhasználást. Az Azure Cosmos DB használatakor például érdemes lehet naplóznia az egyes kérésekhez használt kérelemegységeket, és dimenzióként adja hozzá a bérlő azonosítóját a telemetriához, hogy összesíthesse a kérelemegység-felhasználást az egyes bérlők esetében.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerző:

  • John Downs | Az Azure-hoz készült FastTrack vezető ügyfélmérnöke

Egyéb közreműködők:

A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.