This test will test the performance of parsing RDF models via different RDF formats, especially binary data formats.
The test will send 10,000 members to ldi-orchestrator, the orchestrator will parse the member to the RDF format that is set via an environment variable.
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 docker pull ghcr.io/informatievlaanderen/ldi-orchestrator: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
POST 100k members to LDIO via an RDF format of your choice
export CONTENT_TYPE=<RDF-FORMAT-OF-YOUR-CHOICE> docker compose up
Some examples:
-
POST 100k actual gipod members to LDIO via turtle
export CONTENT_TYPE=text/turtle docker compose up
-
POST 100k actual gipod members to LDIO via n-quads
export CONTENT_TYPE=application/n-quads docker compose up
-
POST 100k actual gipod members to LDIO via json-ld
export CONTENT_TYPE=application/ld+json docker compose up
-
POST 100k actual gipod members to LDIO via RDF Protobuf
export CONTENT_TYPE=application/rdf+protobuf docker compose up
-
POST 100k actual gipod members to LDIO via RDF Thrift
export CONTENT_TYPE=application/rdf+thrift 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: December 28, 2023
- Docker image
- ldes-server: ghcr.io/informatievlaanderen/ldes-server:20231228094401
- ldi-orchestrator: ghcr.io/informatievlaanderen/ldi-orchestrator:20231227095645
- Resources for both the orchestrator as server:
deploy: resources: limits: cpus: '4' memory: '2GB' reservations: cpus: '2' memory: '1GB'
RDF Format | Members successfully posted | Average duration per member (ms) |
---|---|---|
text/turtle | 7,845 | 54.84 |
application/n-quads | 8,685 | 48.55 |
application/ld+json | 5,718 | 75.84 |
application/rdf+protobuf | 9,906 | 39.64 |
application/rdf+thrift | 8,887 | 47.35 |