Kennisbank

Performance van Mendix

De afgelopen tijd ben ik bezig geweest om dat te onderzoeken. Daarbij kwam ik opvallende en minder opvallende dingen tegen.

Ik ben begonnen met uitzoeken hoe een lokale applicatie te verbinden is met externe databases en file storage services. Al vrij snel was mijn conclusie dat dit redelijk eenvoudig te doen is door middel van de runtime configuratie instellingen te wijzigen. Maar toen ik dit gedaan had kwam direct een ander vraag om de hoek kijken: kan ik erachter komen hoe ‘goed’ zo’n externe database en file storage is?

Om hierachter te komen heb ik een applicatie gemaakt die de snelheid van de database en file storage meet. Deze applicatie kan ook als aparte module aan bestaande applicatie worden toegevoegd. In deze applicatie heb ik testen gemaakt die op verschillende manieren de snelheid, betrouwbaarheid en continuïteit van het systeem test. Om precies te zijn bestaat het uit 6 verschillende testen. Als eerste een belastingstest, deze voert kleine database acties uit om te zien wat de snelheid van de database is. De tweede test is een stresstest, deze voert heel vaak achter elkaar kleine database acties uit, dit is om de continuïteit te controleren. Daarna is er een duurzaamheidstest gemaakt die hele grote database acties uitvoert om de betrouwbaarheid en de snelheid te controleren. Als vierde hebben we een volumetest die de database controleert op variërende grote en kleine database acties, dit is ook weer om de continuïteit te controleren. De vijfde test is een iets andere test dan de rest, deze controleert hoe snel de file storage service is door met een variabel aantal documenten, met variabele grootte, verschillende acties te doen. Als laatste is er nog een gebruikerstest deze meet geen snelheid, maar dit is voor de eindgebruiker om zelf de snelheid van de database en file storage te proberen. Dit kan door objecten aan te maken en documenten en afbeeldingen toe te voegen.

De resultaten die gemeten worden, worden weergegeven in mooie grafische overzichten. Door deze resultaten te exporteren kunnen we verschillende systemen en applicaties eenvoudig vergelijken.

Resultaten van lokaal testen

Bij het onderzoek heb ik ook acties onderzocht die direct met het ontwikkelen van Mendix te maken hebben. Onder andere het committen en deleten van objecten in een lijst of gescheiden. Hier bestond al een vermoeden dat het committen en deleten in een lijst een stuk sneller zou zijn dan gescheiden en door middel van de applicatie en resultaten is deze bewering hard gemaakt:

Mendix performance tests - commit and delete

Resultaten van lokaal testen met externe database en externe file storage

Wat opvalt bij het testen met externe databases en file storage services is dat het verbinden met een externe cloud database veel snelheid verlies met zich mee brengt. We zien dit in alle vier de testen terug komen in de diagrammen hieronder.

Resultaten van testen op Mendix Cloud en SAP Cloud

Als laatste heb ik ook nog mijn applicatie getest op een productie en acceptatie omgeving op de Mendix Cloud en op een aangemaakte SAP Cloud omgeving. Hieruit kwamen interessante resultaten naar voren, onder andere dat de continuïteit van de Mendix Cloud nog wel te wensen over laat.

Ook de file storage services van de Mendix Cloud is de mindere ten opzichte van SAP Cloud.

Samenvattend is dit zeker een interessant onderzoek geweest waarbij fraaie resultaten zijn verzameld Maar er is zeker nog ruimte om verder onderzoek te doen en meer resultaten te samen te brengen!

Aanvullingen of opmerkingen zijn altijd welkom. Dus voel je vrij en stuur me een berichtje!

Geschreven door Maarten Kroneman
Mendix ontwikkelaar

Contact

Laat ons helpen jouw ambities concreet te maken.

Neem contact met ons op.