Een databaseserver bewaken en configureren

Voltooid

Nadat een bedrijf hun on-premises databases heeft gemigreerd naar Azure Database for MySQL/PostgreSQL, hebben ze nog steeds een manier nodig om hun prestaties te bewaken.

Als databaseontwikkelaar bent u gebruikt voor het gebruik van databasesspecifieke hulpprogramma's en on-premises VM-bewaking. Nu uw databases worden uitgevoerd in Azure, kunt u gebruikmaken van de portal om één hulpprogramma te gebruiken om alle verschillende databases te bewaken.

In deze les bekijkt u hoe Azure Monitor u kan ondersteunen bij het bewaken van de status van de databases waarvoor u verantwoordelijk bent. Zodra u problemen hebt ontdekt, ziet u hoe u de configuratie van uw databases kunt wijzigen om de problemen op te lossen.

Azure Monitor gebruiken om de status van uw databases weer te geven

Gebruik Azure Monitor om resourcegebruik bij te houden in Azure Database for MySQL/PostgreSQL. Met de pagina Metrische gegevens voor uw server in Azure Portal kunt u grafieken maken waarmee u trends in prestaties kunt detecteren en afwijkingen kunt herkennen.

Metrische gegevens voor Azure Database for MySQL/PostgreSQL

De metrische gegevens die beschikbaar zijn voor het bewaken van een server, vallen in vier algemene categorieën:

  • Metrische gegevens voor opslag
  • metrische gegevens voor Verbinding maken ion
  • Metrische gegevens over resourcegebruik verwerken
  • Metrische replicatiegegevens

Metrische gegevens voor opslag

Metrische opslaggegevens houden de totale grootte van uw databases bij op de server (gebruikte opslag) en de huidige hoeveelheid opslagruimte op de server (opslaglimiet). In een actief systeem zult u waarschijnlijk merken dat de metrische gegevens voor gebruikte opslag in de loop van de tijd toenemen. Als u de optie voor automatische groei voor de server hebt geselecteerd, neemt de metrische opslaglimiet af en toe toe naarmate de hoeveelheid vrije ruimte afneemt. Extra opslagruimte wordt toegevoegd wanneer de hoeveelheid vrije ruimte lager is dan 5 procent van het huidige gebruik. Gebruik de metrische waarde voor het opslagpercentage om het aandeel gebruikte ruimte weer te geven om ruimte vrij te maken op uw server.

Als uw server regelmatig tijd besteedt aan het verhogen van de opslag, kunt u overwegen om handmatig meer ruimte toe te wijzen. Doe dit in Azure Portal door de pagina Prijscategorie voor uw server te selecteren en de schuifregelaar Opslag te gebruiken. Houd er rekening mee dat er kosten in rekening worden gebracht voor opslag, dus stel de beschikbare opslag niet in op hoog.

De metrische gegevens van Backup Storage die worden gebruikt , laten zien hoeveel ruimte uw back-ups maken. Deze metrische waarde is belangrijk vanuit kostenperspectief. Er worden geen kosten in rekening gebracht voor back-upopslag, mits deze onder de grootte blijft van de opslagruimte die aan uw server is toegewezen (zoals opgegeven in de prijscategorie). Wanneer u boven deze limiet gaat, worden er kosten in rekening gebracht voor back-upopslag.

metrische gegevens voor Verbinding maken ion

De metrische gegevens voor actieve verbindingen laten zien hoeveel gelijktijdige verbindingen de server momenteel ondersteunt. Dit is mogelijk niet hetzelfde als het aantal gelijktijdige gebruikers, afhankelijk van of u elk type verbindingspooling hebt geconfigureerd. Azure Database for MySQL/PostgreSQL biedt momenteel geen mogelijkheid tot groepsgewijze verbindingen, maar u kunt een proxyservice zoals PgBouncer* (voor PostgreSQL) gebruiken om deze functie te implementeren. Zie Best practices voor prestaties voor het gebruik van Azure Database for PostgreSQL - Verbinding maken ion Pooling voor meer informatie

De metrische gegevens over mislukte verbindingen laten zien hoe vaak gebruikers ongeldige referenties hebben gepresenteerd. Een groot aantal van deze gebeurtenissen gedurende een korte periode kan duiden op een beveiligingsaanval.

Metrische gegevens over resourcegebruik verwerken

Met deze metrische gegevens kunt u controleren hoe uw server de werkbelasting verwerkt.

Het metrische cpu-percentage laat zien hoe bezet de CPU is. Hoog CPU-gebruik is geen probleem, tenzij het in de loop van de tijd is toegenomen. CPU-gebruik dat meer dan 90% is en nog steeds toeneemt, geeft aan dat uw systeem de verwerkingscapaciteit nadert. Overweeg om omhoog te schalen naar een prijscategorie met meer resources.

De metrische waarde geheugenpercentage geeft de geheugenbezetting aan. Azure Database for MySQL/PostgreSQL maakt gebruik van geheugen voor het opslaan van gegevens in de cache en voor het uitvoeren van de processen die door elke clientaanvraag zijn geïnitieerd. Hoog geheugengebruik is geen probleem totdat het overdreven wordt, is dit meestal meer dan 95%, afhankelijk van de werkelijke hoeveelheid geheugen die beschikbaar is. Zeer lage geheugen beschikbaarheid kan leiden tot verbindingsfouten en trage prestaties vanwege geheugenfragmentatie. U moet deze metrische waarde controleren om te bepalen of de geheugenbezetting na verloop van tijd groeit en uw server dienovereenkomstig schalen.

De metrische io-percentage houdt de hoeveelheid schijfactiviteit bij die door de server wordt uitgevoerd. In het ideale geval moet deze waarde zo laag mogelijk zijn. Schijf-IO is een trage bewerking. Een hoge waarde voor deze metrische waarde, in combinatie met een hoge waarde voor geheugenpercentage, kan erop wijzen dat de server onvoldoende resources heeft om gegevens effectief op te slaan en in plaats daarvan gegevens naar schijfopslag moet lezen en schrijven. Een mate van IO-activiteit is onvermijdelijk, omdat uw gegevens op een bepaald moment op schijf moeten worden bewaard en transactielogboeken moeten worden onderhouden. In de meeste databaseservers wordt dit schrijven uitgevoerd door een afzonderlijk proces of een afzonderlijke thread die asynchroon wordt uitgevoerd.

De metrische gegevens netwerk in en netwerk-out tonen het volume van verkeer dat de server binnenkomt en verlaat via actieve verbindingen. De limieten voor deze cijfers worden bepaald door de bandbreedte van het pad tussen de clienttoepassingen en de server.

Metrische replicatiegegevens

Azure Database for PostgreSQL biedt de metrische gegevens max lag across replica's en metrische replicavertragingen om u te helpen bepalen hoe actuele replica's zijn. Deze metrische gegevens zijn alleen zinvol als u alleen-lezenreplica's hebt geconfigureerd.

De metrische waarde Max Lag Across Replicas laat zien hoeveel bytes de traagste replica zich achter de master bevindt. U kunt deze metrische gegevens alleen bewaken vanuit de master.

De metrische waarde replicavertraging toont de tijd, in seconden, omdat de meest recente transactie is ontvangen van de hoofdserver en is toegepast op een replica. Deze metrische waarde is alleen zinvol wanneer deze wordt weergegeven op een replica.

Azure Database for MySQL heeft de replicatievertraging in seconden . Deze metrische waarde, die u alleen vanuit een replica kunt bewaken, toont het aantal seconden waarmee de replica achter de master loopt.

Grafieken en waarschuwingen maken om de prestaties te bewaken

Met de pagina Metrische gegevens voor een server in Azure Portal kunt u grafieken maken waarmee metrische waarden worden bijgehouden. Metrische gegevens worden verzameld met intervallen van één minuut. Voor elke metrische waarde geeft u een aggregatie op die bepaalt hoe die metrische gegevens moeten worden rapporteren.

  • Gemiddeld genereert in elke minuut een gemiddelde waarde voor de metrische waarde
  • Max geeft de maximumwaarde weer die tijdens elke minuut is bereikt
  • Min geeft de kleinste waarde weer
  • Totalen van de metrische waarde optellen
  • Aantal laat zien hoe vaak de gebeurtenis die de metrische waarde genereert, is opgetreden

Niet alle aggregaties zijn noodzakelijkerwijs zinvol voor elke metrische waarde.

In de onderstaande voorbeeldgrafiek zijn de gemiddelde minuut-per-minuut-waarden vastgelegd voor het CPU-percentage, het geheugenpercentage, het IO-percentage en de metrische gegevens voor actieve verbindingen. U ziet dat er 101 actieve verbindingen gelijktijdig worden uitgevoerd. Het CPU- en geheugengebruik zijn zowel stabiel als het IO-percentage op 0. In dit voorbeeld voeren de clienttoepassingen leesintensieve werkbelastingen uit en worden de benodigde gegevens in de cache opgeslagen in het geheugen.

Image of the chart showing the values captured for the CPU percent, Memory percent, IO percent, and Active connections metrics

Houd er rekening mee dat er een vertraging van maximaal vijf minuten is tussen de metrische gegevens die worden vastgelegd en de resultaten die in een grafiek worden weergegeven.

Als een metrische waarde aangeeft dat een resource een kritiek punt bereikt, kunt u een waarschuwing instellen om een beheerder op de hoogte te stellen. In het onderstaande voorbeeld wordt een e-mailbericht naar een beheerder verzonden als het geheugengebruik hoger is dan 90 procent.

Image of the alerts page, showing a new alert that sends an email if memory utilization exceeds 90%

Serverparameters configureren

Systeemeigen MySQL- en PostgreSQL-servers zijn zeer configureerbaar omdat beide configuratie-instellingen gebruiken die zijn opgeslagen in parameterbestanden. Voor PostgreSQL wordt deze informatie bewaard in het bestand postgresql.conf . Voor MySQL worden configuratiegegevens opgeslagen in verschillende my.cnf-bestanden . In Azure Database for MySQL/PostgreSQL hebt u geen directe toegang tot deze bestanden. In plaats daarvan bekijkt en wijzigt u serverparameters met behulp van Azure Portal of de Azure CLI.

Parameters weergeven en instellen met behulp van Azure Portal

De serverconfiguratieparameters zijn beschikbaar op de pagina Serverparameters voor uw server in Azure Portal. U kunt de parameterwaarden zo nodig wijzigen voor uw server. In de onderstaande afbeelding ziet u de pagina met serverparameters voor Azure Database for PostgreSQL. De bijbehorende pagina voor Azure Database for MySQL is vergelijkbaar.

Image of the Server parameters page for Azure Database for PostgreSQL

Niet alle serverconfiguratieparameters zijn beschikbaar omdat een groot deel van de serverconfiguratie wordt beheerd door Azure. Parameters die zijn gekoppeld aan de geheugentoewijzing ontbreken bijvoorbeeld. Daarnaast biedt Azure Database for MySQL geen ondersteuning voor ISAM-opslag, dus de myisam-parameters zijn er niet.

Wijzigingen in parameters die als Dynamisch zijn gemarkeerd, worden onmiddellijk van kracht. Voor parameters die als statisch zijn gemarkeerd, moet u de server opnieuw opstarten. U doet dit op de pagina Overzicht voor uw server.

Image of the Overview page for Azure Database for PostgreSQL. The Restart button is highlighted

Parameters weergeven en instellen met behulp van de Azure CLI

U kunt parameters programmatisch weergeven en wijzigen met de az mysql/postgres server configuration opdrachten. Bekijk de instellingen van elke configuratieparameter met az mysql/postgres server configuration listen start in op één parameter met behulp van az mysql/postgres server configuration show [parameter-name]. In het onderstaande codefragment ziet u een voorbeeld voor Azure Database for PostgreSQL:

az postgres server configuration show \
    --resource-group northwindrg \
    --server-name northwind101 \
    --name vacuum_defer_cleanup_age

Het resultaat moet er ongeveer als volgt uitzien:

{
  "allowedValues": "0-1000000",
  "dataType": "Integer",
  "defaultValue": "0",
  "description": "Number of transactions by which VACUUM and HOT cleanup should be deferred, if any.",
  "id": "**********************",
  "name": "vacuum_defer_cleanup_age",
  "resourceGroup": "northwindrg",
  "source": "system-default",
  "type": "Microsoft.DBforPostgreSQL/servers/configurations",
  "value": "0"
}

Het belangrijke item in de uitvoer is het waardeveld , waarin de huidige instelling voor de parameter wordt weergegeven.

Gebruik de az mysql/postgres server configuration set opdracht om de waarde van een configuratieparameter als volgt te wijzigen:

az postgres server configuration set \
    --resource-group northwindrg \
    --server-name northwind101 \
    --name vacuum_defer_cleanup_age \
    --value 5

Als u een server opnieuw moet opstarten nadat u een statische parameter hebt gewijzigd, voert u de az mysql/postgres server restart opdracht uit:

az postgres server restart \
    --resource-group northwindrg \
    --name northwind101