Resources & I/O Flows

Resources recommendations

Although we haven't done yet a precise profiling on Orion Context Broker, tests done in our development and testing environment show that a host with 2 CPU cores and 4 GB RAM is fine to run the ContextBroker and MongoDB server. In fact, this is a rather conservative estimation, Orion Context Broker could run fine also in systems with a lower resources profile. The critical resource here is RAM memory, as MongoDB performance is related to the amount of available RAM to map database files into memory.

Resource consumption

The most usual problems that Orion Context Broker may have are related to abnormal consumption of memory due to leaks and disk exhaustion due to growing log files.

Regarding abnormal consumption of memory, it can be detected by the the following symptoms:

$ sudo lsof -n -P -i TCP | grep contextBr
contextBr 7100      orion    6u  IPv4 6749369      0t0  TCP 127.0.0.1:45350->127.0.0.1:27017 (ESTABLISHED)
[As many connections to "->127.0.0.1:27017" as DB pool size, default value is 10]
contextBr 7100      orion    7u  IPv4 6749373      0t0  TCP *:1026 (LISTEN)

TBD: take into account how this looks like with persistent connections new in 0.23.0.

The solution to this problem is restarting the contextBroker, e.g. /etc/init.d/contextBroker restart.

Regarding disk exhaustion due to growing log files, it can be detected by the following symptoms:

The solutions for this problem are the following:

I/O flows

The Orion Context Broker uses the following flows:

TBD: elaborate on persistent connections.

TBD: add element related with CPrs

Note that the throughput in these flows can not be estimated in advance, as it depends completely on the amount of external connections from context consumer and producers and the nature of the requests issued by consumers/producers.