NLEN
Direct technisch advies?
Home > Blog

Hoeveel rekenkracht en geheugen heeft jouw databaseserver nodig?

Dimitri Choustov 4-5-2023 10:14
Categorieën: Beheer, BLOG, DBMS, MariaDB, MS SQL Server, MySQL, Oplossen, Oracle, PostgreSQL

Bij OptimaData ontvangen wij regelmatig een verzoek om de teleurstellende database-prestaties te onderzoeken. Vaak heeft de organisatie het gesprek met de softwareleverancier al gevoerd. Een veelgehoorde reactie van de leverancier is: de databaseserver heeft onvoldoende CPU of geheugen. Maar hoeveel rekenkracht en geheugen is eigenlijk voldoende? En wat kan er nog worden gedaan als de applicatie toch traag reageert, zelfs als de databaseserver voldoende hardwarecapaciteit heeft? In deze blog legt Dimitri Choustov uit waar de mogelijke verbeteringen kunnen zitten.

Hardware: Opslag

De snelheid van intern geheugen is niet te evenaren. Ook de ontwikkelingen van Central Processing Unit (CPU of processor) gaan tot de dag van vandaag door. Maar de snelheid waarmee de conventionele high-performance harde schijven draaien, blijft steken op vijftienduizend rotaties per minuut. Steeds meer bedrijven stappen over naar Solid State Drives (SSD’s) en zijn bereid om de hogere kosten van deze type opslag te accepteren. Zelfs met SSD’s kan de opslag nog steeds het traagste hardware-onderdeel zijn. Configuratie van de opslag verdiend daarom speciale aandacht. Verschillende RAID-configuraties bieden betere disk-I/O (Input/Output prestaties) en de beschikbaarheid van de data erop. Toevoegen van meerdere SCSI-controllers aan een VM zal de algemene prestaties verbeteren, mits de logische schijven juist zijn gekoppeld. Databasebestanden kunnen tegenwoordig heel groot worden. Je kunt de disk-I/O beperken door de databasebestanden op een logische schijf te plaatsen, die geformatteerd is met een hogere blockgrootte (Unit Allocation Size). De virtuele server presteert beter als het wisselbestand – ofwel: het virtueel geheugen – is aangemaakt op een logische schijf met een hogere blockgrootte. 

Hardware: CPU

De processor speelt een hoofdrol in het evenwicht tussen de prestaties en de kosten. Bij een hoge of lage CPU-belasting zijn er respectievelijk wellicht te weinig of te veel processoren beschikbaar. Het toevoegen van extra processoren kan in de praktijk op dubbele kosten neerkomen - zowel van hardware als van software. Het aantal softwarelicenties is vaak gekoppeld aan het aantal processoren dat beschikbaar is voor een relationeel databasemanagementsysteem (RDBMS). Het toevoegen van extra processoren verbetert de algemene CPU-prestatie, maar of het de prestatie van een individuele SQL-query verbetert, valt nog te bezien. Dit terwijl de kosten van hardware (afschrijving of gebruik) en softwarelicenties hoog oplopen. 

Hardware: Geheugen

Random Access Memory (RAM) of het werkgeheugen in een (virtuele) server werkt nauw met de CPU samen. Voordat een datapagina (een stukje informatie) door de CPU is verwerkt, wordt het eerst van disk gelezen en in het geheugen geplaatst. Dit vergroot de toegankelijkheid van datapagina aanzienlijk en daarmee ook de prestaties van de server in het algemeen. Echter, het werkgeheugen is kostbaar en is vaak beperkt beschikbaar. De juiste hoeveelheid van werkgeheugen wordt tijdens het productieproces afgeleid uit de gemiddelde levensduur van een datapagina. De juiste hoeveelheid van werkgeheugen biedt echter geen garantie voor goede prestaties van een individuele SQL-query of een procedure. Bijvoorbeeld, door een ontwerpfout in de software kan een enkele datapagina in een enkele transactie onnodig veel door de CPU worden verwerkt. 

Software

Het aantal op een VM geïnstalleerde en geactiveerde applicaties én de toegepaste configuratie hiervan, beïnvloedt het aantal processoren, het geheugen en de grootte van de logische schijven. Hoe meer softwarecomponenten, hoe uitdagender het wordt om de beschikbare hardware onderling te verdelen. In een efficiënte configuratie is een VM toegewijd aan een specifiek doel. Bijvoorbeeld, het is of een applicatie- of een databaseserver. Het gescheiden houden van de test-, ontwikkel-, acceptatie- en productie omgevingen is een verstandige en tegelijkertijd voordelige keuze. Antivirussoftware is tegenwoordig op elke omgeving operationeel, maar vaak onvoldoende geconfigureerd. Met een juiste configuratie van de uitzonderingen in antivirussoftware worden bepaalde bestanden in bepaalde mappen genegeerd, wat de algemene prestatie van een server bevorderd. Ook RDBMS als applicatie profiteert van een juiste configuratie van specifieke eigenschappen.

Operationele systemen

Het plaatsen van een wisselbestand op een separate logische schijf bevordert de algemene serverperformance. In een Microsoft Windows Server OS, bijvoorbeeld, staat de configuratie van Energieopties (Power Options) standaard op Gebalanceerd. Deze configuratie helpt het gebruik van stroom te beperken, iets wat tegenwoordig het gesprek van de dag is. Echter, voor betere algemene serverperformance van een database-omgeving is het aanbevolen om deze optie op High Performance te zetten. 

Database

We komen tot de kern van de zaak, iets wat iedere DBA graag en met passie doet. Op een database beginnen de mogelijkheden om prestaties te verbeteren echt toe te nemen. Het genormaliseerde datamodel, het juist gekozen kolomdatatype, de volledig geïndexeerde referentiele integriteit, efficiënte code waarmee de objecten zoals views, procedures en functies zijn gebouwd of de functionele toepassing van deze objecten zijn slechts de voorbeelden van deze mogelijkheden. Als het gaat om het verbeteren van algemene queryperformance op een database, het onderhoud van de indexen is hier het laaghangende fruit. Toch nemen juist hier de uitdagingen van een DBA toe. Iedere aanpassing op een database zal de werking van applicatie beïnvloeden. De samenwerking met een softwareleverancier is daarom onvermijdelijk.

Applicatie

Eindelijk komen we bij het rijk van de menselijke creativiteit! Er zijn zoveel woorden met dezelfde betekenis – applicatie, computerprogramma, software, toepassing, interface. Dat de prestaties hier geadresseerd en verbeterd kunnen is even juist als de bewering dat iedere applicatie bestaat uit regels code, opgesteld in een bepaalde programmeertaal. De impact van de verbeteringen op prestaties is het best samengevat in het volgende grafische weergave:

Een goede prestatie van elke applicatie is afhankelijk van de juiste configuratie van de hardware, het besturingssysteem, het RDBMS-systeem en de database. Maar de meeste prestatiewinst kan worden behaald door de applicatie zelf te optimaliseren.

Tot slot

Medewerkers van OptimaData hebben ruime ervaring met het verbeteren van algemene prestaties op een database-omgeving. In meeste gevallen gaat het om een samenwerking met specialisten uit verschillende IT-gebieden. Het meeste werk zit vooral in de samenwerking met de softwareleveranciers en ontwikkelaars. 

Ervaart jouw organisatie ook performanceproblemen? Denk je dat de configuratie van je database-omgeving beter kan? Of rijzen de cloud- of hardwarekosten de pan uit? Wij weten door onze jarenlange ervaring hoe we je kunnen helpen en dat doen we graag! Neem daarom gerust contact op.

Andere interessante blogs

De grandprix van databases

Databasebeheer en nuttige overtolligheid

Help! MySQL groeit uit mijn jasje

Winst boeken met database performancetuning

Terug naar blogoverzicht

Reageer