3
votes

I have downloaded and installed the recent sources from Orion on a local hardware running Linux. In principle everything is working fine. But I wonder if anything can be done in order to get a higher performance. Whenever I am processing a number of entities (get method on /contextElement/id) in a loop, say 100, it takes about 50 to 100 milliseconds per entity, in this case over 10 seconds to process the loop. If it some day should be thousands or even more this will take definitely to long for practical usability.

Is there any way to increase the performance? Why does the query in the local network take such a relative long time? Should I seek the performance issue on the client or on the broker side?

Thanks a lot!

Cheers, Nicolas

1

1 Answers

1
votes

You can find a performance analysys in the Orion Installation and Administration manual. However, take into account the disclaimer:

Please, take into account that this information is provided only as a hint to guide your decision about which indexes to use in your particular set up, but the results in your particular environment may differ depending on hardware profile, the particular entities being used for the test, set up situation, etc.

However, 50-100 ms per transaction (i.e. 10-20 TPS) seems to be very slow (note that in the analysis TPS in the order of 100-1000 has been achieved). Thus, I'd recommend some of the following hints:

  • At server side, set up the proper indexes in the MongoDB instance used by Orion CB. As concluded in the above analysis: "it is highly recommended to set up an index on _id.id in the entities collection". More information on indexes in this section.
  • At client side, you'd get a better performance if you run entity creation request in parallel, instead of an sequential loop.