The described setup will work stable for setups with:
- around 9900 updates/s for the ngsi-ld endpoint
- around 12 500 single value updates/s for the v2 endpoint
Detailed reports can be found here:
- LD-endpoint:
- v2-endpoint:
- OpenShift 4.6 on Google Compute Engine
- 3 master - 6 worker, each of type n1-standard-16
- tests were run inside the same cluster
- all components are deployed using the following helm-charts:
- the setup uses 8 CPU / 48 GB RAM for Orion-LD, 30 CPU / 48 GB RAM for Mongo-DB
- detailed information(and ready to use values files) can be found in the config-folder
- regional ssd storage for mongo(see storage-class)
⚠️ Be aware that mongo uses a node-affinity configuration in this config. Due to the resource requirements of the single instances, we select the nodes by the label "workload=mongo". You can set node labels viakubectl label nodes <NODE_NAME> workload=mongo
on k8s oroc label node <NODE_NAME> workload=mongo
in an openshift environment.
Add helm repos:
helm repo add fiware https://fiware.github.io/helm-charts
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add timescale https://charts.timescale.com
helm repo update
Install charts:
helm install mongo bitnami/mongodb -f config/mongo.yaml --namespace fiware
helm install timescale timescale/timescaledb-single -f config/timescale.yaml --version v0.7.1 --namespace fiware
helm install orion-test fiware/orion -f config/orion.yaml --namespace fiware
Optimizations: To improve performance, you should set an index on the mongodb as following:
kubectl run --namespace fiware mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:4.4.2-debian-10-r0 --command -- bash
mongo admin --host "mongo-mongodb-0.mongo-mongodb-headless.fiware.svc.cluster.local:27017,mongo-mongodb-1.mongo-mongodb-headless.fiware.svc.cluster.local:27017"
> use orion
> db.entities.createIndex({"_id.servicePath": 1, "_id.id": 1, "_id.type": 1});
Run test:
helm install orion-ldt ../../helm/orion-loadtest/ -n fiware -f ./testReports/orion/mid/reports/<ENDPOINT>/<SCENARIO>/test.yaml
Get the results:
kubectl proxy --port 8002
to see a local report go to
http://localhost:8002/api/v1/namespaces/fiware/services/orion-ldt-orion-loadtest:8080/proxy/
or click this report link when running locally