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:
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:
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
- Győződjön meg arról, hogy az alkalmazás kezeli a szolgáltatásszabályozást, hogy csökkentse a szolgáltatásra irányuló szükségtelen kéréseket. Győződjön meg arról, hogy az alkalmazás a bevált eljárásokat követve újrapróbálkozza az átmeneti hibaválaszt kapott kéréseket.
- Vásároljon fenntartott kapacitást, ha elérhető. Az Azure Cosmos DB használatakor például vásároljon fenntartott átviteli sebességet, és az ExpressRoute használatakor külön kapcsolatcsoportokat hozzon létre a teljesítményre érzékeny környezetekhez.
- Migrálás a szolgáltatás egy bérlős példányára vagy egy olyan szolgáltatási szintre, amely erősebb elkülönítési garanciákkal rendelkezik. A Service Bus használatakor például migráljon a prémium szintre, és az Azure Cache for Redis használatakor kiépítsen egy standard vagy prémium szintű gyorsítótárat.
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:
- Chad Kittel | Fő szoftvermérnök
- Paolo Salvatori | Az Azure-hoz készült FastTrack vezető ügyfélmérnöke
- Daniel Scott-Raynsford | Partnertechnológiai stratéga
- Arsen Vladimirskiy | Az Azure-hoz készült FastTrack vezető ügyfélmérnöke
A nem nyilvános LinkedIn-profilok megtekintéséhez jelentkezzen be a LinkedInbe.