This test will test the performance of the following features:
- Ingest Test ingestion rate of the HTTP endpoint
- Fragmentation
Test the rate of the actual fragmentations. The following fragmentations are included:
- Geospatial
- Hierarchical timebased
- Delete view We test if the geospatial view can be deleted in a reasonable time
- Delete eventstream We test if the collection with the remain timebased fragmentation can be deleted in a reasonable time
Note: if needed, copy the environment file (.env) to a personal file (e.g.
user.env
) and change the settings as needed. If you do, you need to add--env-file user.env
to eachdocker compose
command. NOTE for Windows users: Use this tutorial to run JMeter in the docker-compose file. You can use DISPLAY=host.docker.internal:0.0 as environment variable to skip the ipconfig step.
Prerequisites: - Pull the latest version of the server
docker pull ghcr.io/informatievlaanderen/ldes-server:latest
-
Prepare directory that will contain the results
mkdir tests/results chmod 777 tests/results rm -rf tests/results/output rm -rf tests/results/report.jtl
-
Start test
Ingest 10k actual gipod members
export JMETER_SCRIPT=gipod_10_000.jmx docker compose up
Ingest 100k templated gipod members without fragmentations
export JMETER_SCRIPT=ingest_100k_without_fragmentations.jmx docker compose up
Ingest 100k templated gipod members with timebased fragmentation
export JMETER_SCRIPT=ingest_100k_with_only_timebased.jmx docker compose up
Ingest 100k templated gipod members with geolocation fragmentation
export JMETER_SCRIPT=ingest_100k_with_only_geolocation.jmx docker compose up
Ingest 100k templated gipod members with both geolocation and timebased fragmentation
export JMETER_SCRIPT=ingest_100k_with_all_fragmentations.jmx docker compose up
Ingest 1 million templated gipod members (e.g. one real member where only the id is changed using templating)
export JMETER_SCRIPT=gipod_1_000_000.jmx docker compose up
-
End test
docker compose down
-
Test results
To run the different tests, repeat step 1 -> 3 above and insert the results below.
- Test run: September 7, 2023
- Docker image: ldes/ldes-server:2.1.0-SNAPSHOT
- Resources:
deploy: resources: limits: cpus: '4' memory: '2GB' reservations: cpus: '2' memory: '1GB'
Test | Ingested members | Ingest rate | Fragmentation rate | Test file |
---|---|---|---|---|
Without fragmentations | 100.000 | 888 mps | 471 mps | ingest_100k_without_fragmentations.jmx |
With only timebased fragmentation | 100.000 | 866 mps | 427 mps | ingest_100k_with_only_timebased.jmx |
With only geolocation fragmentation | 100.000 | 829 mps | 433 mps | ingest_100k_with_only_geolocation.jmx |
With both geolocation and timebased fragmentation | 100.000 | 845 mps | GeospatialFragmentation 409 mps & HierarchicalTimeBasedFragmentation 382 mps | ingest_100k_with_all_fragmentations.jmx |
*mps = members per second |