Share via


Skala upp och ned en Azure Database for PostgreSQL-server med CLI (az eller kubectl)

Det finns tillfällen då du kan behöva ändra egenskaperna eller definitionen av en server. Till exempel:

  • Skala upp eller ned antalet virtuella kärnor som servern använder
  • Skala upp eller ned det minne som servern använder

Den här guiden beskriver hur du skalar virtuella kärnor och/eller minne.

Att skala upp eller ned inställningarna för virtuell kärna eller minne på servern innebär att du har möjlighet att ange ett minimum och/eller ett maxvärde för var och en av inställningarna för virtuell kärna och minne. Om du vill konfigurera servern så att den använder ett visst antal virtuella kärnor eller en viss mängd minne anger du de minsta inställningarna som är lika med de maximala inställningarna. Innan du ökar värdet för virtuella kärnor och minne måste du se till att

  • du har tillräckligt med resurser tillgängliga i den fysiska infrastruktur som är värd för distributionen och
  • arbetsbelastningar som är sorterade i samma system konkurrerar inte om samma virtuella kärnor eller minne.

Kommentar

Som en förhandsgranskningsfunktion omfattas tekniken som presenteras i den här artikeln av kompletterande användningsvillkor för Förhandsversioner av Microsoft Azure.

De senaste uppdateringarna är tillgängliga i viktig information.

Visa den aktuella definitionen av servern

Om du vill visa den aktuella definitionen av servern och se vilka aktuella inställningar för virtuell kärna och minne är kör du något av följande kommando:

Med Azure CLI (az)

az postgres server-arc show -n <server name> --k8s-namespace <namespace> --use-k8s

CLI med kubectl

kubectl describe postgresql/<server name> -n <namespace name>

Den returnerar konfigurationen av servergruppen. Om du har skapat servern med standardinställningarna bör du se definitionen på följande sätt:

Spec:
  Dev:  false
  Scheduling:
    Default:
      Resources:
        Requests:
          Memory:  256Mi
...

Tolka definitionen av servern

I definitionen av en server är avsnittet som innehåller inställningarna för minsta eller högsta virtuella kärnor per nod och minsta eller högsta minne per nod avsnittet "schemaläggning" . I det avsnittet sparas de maximala inställningarna i ett underavsnitt som kallas "gränser" och de minsta inställningarna sparas i underavsnittet " begäranden".

Om du anger minimiinställningar som skiljer sig från de högsta inställningarna garanterar konfigurationen att servern allokeras de begärda resurserna om den behöver det. Den överskrider inte de gränser som du anger.

De resurser (virtuella kärnor och minne) som faktiskt ska användas av servern är upp till de högsta inställningarna och beror på arbetsbelastningarna och resurserna som är tillgängliga i klustret. Om du inte anger maxgränsen för inställningarna kan servern använda upp till alla resurser som Kubernetes-klustret allokerar till Kubernetes-noderna som servern är schemalagd på.

I en standardkonfiguration är endast det minsta minnet inställt på 256Mi eftersom det är den minsta mängd minne som rekommenderas för att köra PostgreSQL-servern.

Kommentar

Att ange ett minimum innebär inte att servern nödvändigtvis använder det minimumet. Det innebär att om servern behöver det, är det garanterat att allokeras minst detta minimum. Låt oss till exempel överväga att vi anger --minCpu 2. Det innebär inte att servern använder minst 2 virtuella kärnor hela tiden. Det innebär i stället att serverdelen kan börja använda mindre än 2 virtuella kärnor om den inte behöver så mycket och det garanteras att allokeras minst 2 virtuella kärnor om den behöver dem senare. Det innebär att Kubernetes-klustret allokerar resurser till andra arbetsbelastningar på ett sådant sätt att det kan allokera 2 virtuella kärnor till servern om det någonsin behöver dem. Att skala upp och ned är inte heller en onlineåtgärd eftersom det kräver omstart av kubernetes-poddarna.

Kommentar

Innan du ändrar systemets konfiguration måste du bekanta dig med Kubernetes-resursmodellen här

Skala upp och ned servern

Uppskalning syftar på att öka värdena för serverns virtuella kärnor och/eller minnesinställningar. Nedskalning syftar på att minska värdena för serverns virtuella kärnor och/eller minnesinställningar.

De inställningar som du ska ange måste beaktas i den konfiguration som du har angett för ditt Kubernetes-kluster. Kontrollera att du inte anger värden som Kubernetes-klustret inte kan uppfylla. Det kan leda till fel eller oförutsägbart beteende som otillgänglighet för databasinstansen. Om serverns status till exempel är i statusuppdatering under en lång tid efter att du har ändrat konfigurationen kan det vara en indikation på att du ställer in parametrarna nedan på värden som kubernetes-klustret inte kan uppfylla. I så fall återställer du ändringen eller läser _troubleshooting_section.

Vilka inställningar ska du ange?

  • Ange minsta virtuella kärnor genom att ange --cores-request.
  • Ange maximal virtuell kärna genom att ange --cores-limit.
  • Ange minsta minne genom att ange --memory-request
  • Ange maximalt minne genom att ange --memory-limit

Varning

Med Kubernetes tvingar konfigurationen av en gränsinställning utan att konfigurera motsvarande begärandeinställning att begärandevärdet är samma värde som gränsen. Detta kan potentiellt leda till att servern inte är tillgänglig eftersom dess poddar kanske inte schemaläggs om om det inte finns en Kubernetes-nod tillgänglig med tillräckliga resurser. För att undvika den här situationen visar exemplen nedan hur du ställer in både begäran och gränsinställningarna.

Den allmänna syntaxen är:

az postgres server-arc edit -n <server name> --memory-limit/memory-request/cores-request/cores-limit <val> --k8s-namespace <namespace> --use-k8s

Värdet som du anger för minnesinställningen är ett tal följt av en volymenhet. Om du till exempel vill ange 1 GB anger du 1024Mi eller 1Gi. För att ange ett antal kärnor skickar du bara ett tal utan enhet.

Exempel med Azure CLI

Konfigurera servern så att den inte överskrider 2 kärnor:

 az postgres server-arc edit -n postgres01 --cores-request 1, --cores-limit 2  --k8s-namespace arc --use-k8s

Kommentar

Om du vill ha mer information om dessa parametrar kör du az postgres server-arc update --help.

Exempel med kubernetes-inbyggda verktyg som kubectl

Kör kommandot:

kubectl edit postgresql/<server name> -n <namespace name>

Detta tar dig till redigeraren vi där du kan navigera och ändra konfigurationen. Använd följande för att mappa önskad inställning till namnet på fältet i specifikationen:

Varning

Nedan visas ett exempel som illustrerar hur du kan redigera konfigurationen. Innan du uppdaterar konfigurationen måste du ange parametrarna till värden som Kubernetes-klustret kan uppfylla.

Om du till exempel vill ange följande inställningar för både koordinator- och arbetsrollerna till följande värden:

  • Minsta virtuella kärnor = 2
  • Maximalt antal virtuella kärnor = 4
  • Minsta minne = 512Mb
  • Maximalt minne = 1Gb

Du anger definitionen för servergruppen så att den matchar konfigurationen nedan:

...
  spec:
  dev: false
  scheduling:
    default:
      resources:
        requests:
          cpu: "2"
          memory: 256Mi
        limits:
          cpu: "4"
          memory: 1Gi
...

Om du inte är bekant med redigeraren vi kan du se en beskrivning av de kommandon som du kan behöva här:

  • Redigeringsläge: i
  • Flytta runt med pilar
  • Sluta redigera: esc
  • Avsluta utan att spara: :qa!
  • Avsluta när du har sparat: :qw!

Återställ till standardvärden

Om du vill återställa parametrar för kärn-/minnesgränser/begäranden till deras standardvärden redigerar du dem och skickar en tom sträng i stället för ett faktiskt värde. Om du till exempel vill återställa parametern för kärngräns kör du följande kommandon:

az postgres server-arc edit -n postgres01 --cores-request '' --k8s-namespace arc --use-k8s
az postgres server-arc edit -n postgres01 --cores-limit '' --k8s-namespace arc --use-k8s

eller

az postgres server-arc edit -n postgres01 --cores-request '' --cores-limit '' --k8s-namespace arc --use-k8s