Azure IoT Hub Load Testing Paper
Clemson University — 2019-2021
Technologies Used
Azure IoT Hub
MQTT
C++/Python/Bash
Azure IoT SDK for C
HPC with PBS and qsub
matplotlib
LaTeX
Major Accomplishments
We published a paper in an ACM journal
Wajdi and I raised an issue with the Azure IoT SDK for C GitHub repository
Together with our advisors, Wajdi and I defined a research plan with measurable goals and objectives
At the end of my Cloud Computing course in college, my professor selected me and another student (Wajdi) to do a research project that would span two years, even after our graduation. At first we struggled to find a research direction, but we eventually started gathering data and made progress. By the end the project, we had met with Microsoft IoT Hub experts, contributed an issue to the official Azure IoT Hub SDK, and published our findings through a short paper in the ACM ICPE `21 journal.
In our research we evaluated IoT Hub’s ability to handle high frequency IoT data at a large scale by emulating sensors from a manufacturing plant. We did this by measuring round-trip latency of these sensors. We changed IoT Hub configurations and also message frequency, distribution, and size. We found IoT Hub behaves as expected under specifications but can have greatly variable latency when parameters exceed those specifications.
I wrote the C++ code that emulated the sensors. I based it off an existing Python repository that generated synthetic data but didn’t send it to IoT Hub. I received help from a graduate student on the CMake file and incorporating the Boost library into the code.
Besides that, I had a hand in most everything else we did. Wajdi handled most of the bash scripting and PBS file writing. I set up the IoT Hub instances, and Wajdi configured all the connection strings and saved those to a file. We wrote the GitHub issue together. We made graphs for the paper and divided up the sections of the paper. And finally, we both presented a PowerPoint presentation of our paper to an international audience.