Resource contention

In de informatica verwijst 'resource contention' naar een conflict over een gedeelde resource tussen verschillende componenten. Resource contention heeft vaak een negatieve invloed op de prestaties van componenten die concurreren om de bron. Het is een veel voorkomend probleem bij cloud computing.

Resource contention treedt op wanneer de vraag naar een bepaalde bron groter is dan het aanbod. Wanneer meerdere processen dezelfde bron nodig hebben, bereikt één proces de bron als eerste, en de andere mededingers worden vertraagd totdat de eerste klaar is met het gebruik van de bron. De applicaties die op de bron wachten zullen waarschijnlijk een prestatievermindering ondervinden omdat ze de bron nodig hebben om te functioneren. De resources waar vaak om wordt gestreden zijn processor, netwerk, geheugen en opslag.

Hoe beïnvloedt resource-contention projecten? 

Resource-contention leidt vaak tot prestatievermindering bij de applicaties die om de gedeelde resource strijden. Dit kan onverwachte projectvertragingen veroorzaken, omdat processen die om resources strijden worden tegengehouden totdat ze toegang tot de resource krijgen.

Omgekeerd kunnen onjuist geprioriteerde processen eerder klaar zijn dan verwacht, en onnodig veel resources in beslag nemen. Dit kan ook projecten vertragen omdat de volgorde van processen onjuist is.

Deze contentieproblemen zijn moeilijk te identificeren en op te lossen, omdat probleemprocessen moeten worden uitgekozen en opnieuw geprioriteerd om middelen toe te wijzen aan de belangrijkste processen eerst. Afgezien van het resource-contention probleem zelf, kan het identificeren en oplossen van het probleem ook tijdrovend zijn en leiden tot verdere vertraging van het project.

Gemeenschappelijke resource-contention problemen

Het belangrijkste probleem bij resource-contention is het managen van transacties tussen resources en de processen die ze nodig hebben. De transacties moeten worden geprioriteerd, zodat processen zo min mogelijk conflicteren om resources.

Meer gelijktijdige transacties zorgen voor meer bewegende stukken die moeten worden beheerd en geprioriteerd. Daarom zijn publieke cloud-configuraties vaak gevoelig voor problemen met resource contention, omdat ze bijzonder dynamisch van aard zijn en een grotere pool van "resource requestors" hebben. Hoe dynamischer de omgeving, hoe meer processen een gedeelde bron moet bedienen, en hoe meer beheer van de resourcetoewijzing vereist is. Andere dynamische IT-infrastructuren die vatbaar zijn voor conflicten over resources zijn:

  • Breng je eigen apparaat (BYOD). Het toegenomen gebruik van persoonlijke apparaten in de onderneming zorgt voor een dynamischere omgeving en meer entiteiten die resources aanvragen.
  • IT as a service (ITaaS). ITaaS-configuraties beschikken over technologieën die worden gehost door een derde partij. Dit type configuratie leent zich voor multi-tenantomgevingen, waardoor de kans op conflicten over resources toeneemt.
  • Automatisering. Configuraties die gebruikmaken van automatisering om transacties te prioriteren, kunnen onbedoeld de kans op conflicten over resources vergroten, omdat ze een onbelangrijke transactie ten onrechte een hogere prioriteit kunnen geven. Automatisering vermindert ook de zichtbaarheid en controle van IT-omgevingen voor beheerders.
  • Virtualisatie. Virtualisatie creëert virtuele versies van een bestaande bron, zoals besturingssystemen (OS), opslagapparaten of servers. Het voegt in wezen een extra laag toe van processen die resources vereisen, omdat een deel van de fysieke resources door de virtuele omgeving wordt gereserveerd om in de virtuele laag te voorzien. Resourcecontention kan zich dus voordoen in de virtualisatielaag wanneer twee of meer processen strijden om een virtuele bron, of in de fysieke laag wanneer de virtuele bron toegang heeft tot de ondersteunende fysieke bron.

Het grootste probleem van resourcecontention is de verslechtering van de prestaties van toepassingen, die zich op verschillende manieren kan manifesteren:

  • Cloudcontention. Gebruikers van de publieke cloud kunnen in conflict raken met andere huurders als het een multi-tenantomgeving is. De cloudaanbieder en de gebruiker nemen beide een zekere mate van verantwoordelijkheid bij het beperken van het probleem. De gebruiker kan samenwerken met de aanbieder, indien mogelijk, om hun processen te reorganiseren om bronnen efficiënter te gebruiken. De provider moet mogelijk ook de verdeling van cloudresources onder alle huurders reorganiseren om de efficiëntie te verbeteren.
  • Deadlock. De officiële naam voor een situatie waarin processen wachten tot een resource beschikbaar komt.
  • Livelock. Vergelijkbaar met deadlock, maar de wachtende processen zijn voortdurend in beweging en proberen de resource op verschillende manieren te bereiken, zonder dat er vooruitgang wordt geboekt. Dit komt vaak voor wanneer een algoritme wordt gebruikt om deadlocks te beperken. Het algoritme activeert meer processen dan nodig om ze toegang te geven tot de bron, waardoor de weg naar de bron verstopt raakt.
  • Thrashing. Dit treedt op wanneer het virtuele geheugen van een computer wordt overgebruikt en de prestaties van de toepassing verslechteren of zelfs volledig instorten. Dit kan oneindig doorgaan totdat er ruimte wordt gecreëerd voor applicatieprocessen in de virtuele geheugenbandbreedte.

Hoe resource contention te verminderen

Resource contention problemen en hun oplossingen variëren vaak afhankelijk van de eigenaardigheden van een IT-configuratie. Ongeacht de specifieke kenmerken van een probleem met resource-contention, kunnen IT-professionals dit algemene proces toepassen om het op te lossen:

  • Stel vast welke prestatieproblemen het gevolg zijn van resource-contention.
  • Stel vast welke transacties met elkaar concurreren om resources.
  • Prioriteer transacties om processen te stroomlijnen en conflicten te minimaliseren.

IT-professionals kunnen deze stappen toepassen met behulp van een van de vele tools die beschikbaar zijn voor het beheren van resourcetoewijzing in dynamische omgevingen. Enkele van deze tools zijn:

  • command-line tools, die worden meegeleverd met het OS van een computer;
  • Prometheus, dat is een open source software voor het monitoren van containers in Windows-omgevingen;
  • Grafana, dat is ook een open source container-monitoring software voor Windows-omgevingen; en
  • Splunk, dat is een tool voornamelijk gericht op log monitoring, maar kan ook worden gebruikt in virtuele omgevingen.

Zoals in de vorige subkop is gezegd, vergroten virtuele machines de kans op resource contention. Veel recente oplossingen voor resource contention zijn dan ook gespecialiseerd in het monitoren van containers. Net als virtuele machines (VM's), simuleren containers hardwarefunctionaliteit om een virtueel systeem te creëren. In tegenstelling tot VM's, hebben containers geen gast OS nodig om te draaien. In plaats daarvan delen ze allemaal een OS en zijn daarom efficiënter omdat ze minder overhead vereisen.

IT-beheerders die resource contention ervaren in een virtueel framework zouden containers en monitoringtools moeten gebruiken om het probleem te helpen verminderen.

Om het maximale uit monitoringtools te halen, moeten IT-beheerders:

  • Analyseer multi- en cross-tier afhankelijkheden. Het helpt om een zo volledig mogelijk beeld van de IT-infrastructuur te hebben, om te zien wat resources gebruikt, hoeveel er wordt gebruikt, en wanneer.
  • Stel een basislijn en referentietijdschema vast. Beheerders moeten historische gegevens hebben die laten zien hoe hun systemen normaal functioneren, zodat ze bij problemen de nieuwe gegevens van de slecht functionerende configuratie kunnen vergelijken met de oude, "normale" gegevens om te zien wat er misging en wanneer dat gebeurde.
  • Begrijp de bedrijfscontext. De bedrijfsrelevantie van elk proces moet worden overwogen bij het herprioriteren van processen. De meest kritieke processen - processen die het bedrijf de meeste schade zouden berokkenen als ze vertraging oplopen - moeten over het algemeen de meest directe toegang tot middelen krijgen. Sommige monitoringtools bieden gebruikers de mogelijkheid om processen te rangschikken op basis van bedrijfsrelevantie, maar veel tools zijn vooral technisch gericht en laten de gebruiker deze metriek handmatig bijhouden.
  • Bevorder de zichtbaarheid van gegevens. Werknemers in alle sectoren van de IT-infrastructuur - bijvoorbeeld opslag, netwerk en ontwikkeling - moeten allemaal toegang hebben tot dezelfde prestatiegegevens. Dit verbetert de communicatie binnen IT-afdelingen en versnelt de mitigatie van resource contention.

Over het geheel genomen moet een IT-afdeling een resource contention-probleem, ongeacht de tool of de specifieke aard ervan, op een strategische en proactieve manier oplossen. Zelfs gebruikers van een personal computer kunnen de genoemde algemene stappen gebruiken om de prestaties van hun computer op een gezond niveau te houden. Resource contention is, net als elk ander IT-probleem, veel eenvoudiger op te lossen met een plan, in plaats van te reageren nadat een incident heeft plaatsgevonden.