Download as a PDF
Transcript
64 System Evaluation 5 10 2 10 4 3 10 Delay [ms] Delay [ms] 10 2 10 1 0 10 t1 t3 t4 t5 −2 10 10 0 10 −4 1K 2K 3K 4K 5K 6K 7K Load [Messages / s] 8K (a) 9K 10K 10 1K 2K 3K 4K 5K 6K 7K 8K 9K Load [Messages / s] (b) Figure 5.7: Delays with high load: a) Total delay (tC ), b) Delays introduced by different steps of the processing of a message for the experiment does not have enough computing power to handle the whole experiment. Besides running Wisspr, the machine also has to simulate the devices and run the message broker. One can also see that the machine is overloaded when looking at time t4 because it measures only the time it takes to pass a message to a sender and this is a simple Java method call. This is the reason why this time is always constant. The increase of t4 for 9000 messages per second can clearly be attributed to an overloaded machine. We redid the experiment and put the message broker on a separate machine. As expected the performance of Wisspr was better: up to 9000 messages per second could be served with a delay smaller than 100 milliseconds. Afterwards, the machine is again overloaded and the delay grows very fast. All in all, we can state that Wisspr introduces very small delays (less than 10 milliseconds) for up to 7000 messages per second even when the message broker and additional processes (like the device driver simulator) run on the same machine (see figure 5.8). Considering the latency requirements discussed in section 3.1, this is a very good result because it is the first precondition to support applications with relatively tight latency constraints. 5.3.3 Many Data Streams So far, we only tested with one data stream. Now we want to evaluate the behavior when many data streams are registered. The experiment was carried out with one machine (as in the experiments above) and the overall delay that is introduced was measured. We only simulated one device and each data stream got the data from this device. The data streams use no frequency or filter, but only differ in the specified data fields. Each data stream uses a unique combination of data fields. This is necessary to ensure that Wisspr creates all the data streams because it is verified whether a similar data stream exists before a new data stream is registered. We did experiments for the following numbers of data streams: 5, 10, 50, 100, 150 and 200. Note that an incoming message from a device needs to be processed differently for each data stream and needs to be sent to the message broker also for each data stream (since each data stream has a separate channel on the message broker). This means that in our case the overall number of entities that are processed by Wisspr grows linearly with the number of registered data streams. As a consequence, the load for this experiment was calculated by multiplying the number of