Sizing hardware on a ThingPark Enterprise OCP platform
This topic describes the platform sizing that is applicable to Virtual-Machine-based deployments. You can use these deployments both in standalone or High Availability (HA) mode.
This topic helps you choose the right hardware resource sizing for your IoT deployment. You can assess how much a ThingPark Enterprise OCP platform can cost you prior to purchasing your equipment.
Case 1 - You want to purchase some hardware resource for a target IoT deployment for the first time. To learn more, click Case 1 - Determining the hardware sizing for a target IoT deployment.
Case 2 - You already have some hardware and want to know if the sizing fulfills the requirements of your new target IoT deployment. To learn more, click Case 2 - Determining the maximum deployment capacity of the current (or target) hardware sizing.
ThingPark Enterprise OCP standalone
The next table describes the hardware sizing requirements according to your IoT deployment for each hardware sizing segment (XS up to XXL). It gives you the number of base stations and devices, and the LoRaWAN® uplink/downlink traffic rate.
1 The peak load (uplink and downlink packets per second) cannot be sustained over more than one minute.
2 The CPU score can be assessed through the ThingPark HW benchmark script which is included in TPE OCP image distribution.
3 The indicative CPU mark refers to the PassMark "Average CPU Mark" shown in https://www.cpubenchmark.net/cpu_list.php. This value is given as an indication to the range of CPU models required on a standalone appliance for each platform sizing segment. The definite CPU sizing must be validated against the ThingPark’s minimal CPU score assessed through the HW benchmark script.
4 Refers to the available storage space. For instance, if RAID1 is used for a Small Segment, the platform must have two disks of 90GB each.
Important If you need a high available TPE OCP platform, you need three identical servers with a sizing that fulfills the Case 1 - Determining the hardware sizing for a target IoT deployment described in the preceding table.
Important If your TPE OCP configuration requires limited hardware resources (RAM/CPU), you need an Extra-Small (XS) sizing profile. To learn more, click Application provisioning constraints.

-
Determine the target number of base stations and devices for your IoT deployment.
-
Based on the expected traffic profile of your devices derive the total average number of messages per second expected for your deployment. The expected traffic profile corresponds to the average number of uplink/downlink messages exchanged per day between the device and the ThingPark core network).
-
From the target design parameters defined in the preceding steps 1 and 2, choose the minimum sizing segment fulfilling all design targets:
-
For a deployment having four base stations, 1200 devices and 0.6 messages per second, the minimum sizing segment must be Small (S).
-
For a deployment having 50 base stations, 8000 devices and two messages per second, the minimum sizing segment must be Medium (M).
-
-
Read the minimum hardware resources required for the target sizing segment in Hardware sizing requirements shown in the preceding table:
-
If you have access to the target appliance / deployment environment, we recommend that you run a hardware benchmark to assess the effective CPU performance of your deployment server. To learn more, click Running a benchmark of the hardware on ThingPark Enterprise OCP platform.
-
If you cannot run the hardware benchmark on your target appliance / deployment environment, use the Minimum CPU score 2 to determine which CPU models fits for each segment. To do this, compare the indicative Minimum CPU mark (indicative) 3 shown in the with the "Average CPU Mark" referenced by https://www.cpubenchmark.net/cpu_list.
-

-
Determine your sizing segment:
-
Either by running the hardware benchmark. To learn more, click Running a benchmark of the hardware on ThingPark Enterprise OCP platform.
-
Or by comparing your hardware capacity against the Case 1 - Determining the hardware sizing for a target IoT deployment shown in the preceding table. Your hardware capacity corresponds to the CPU through"Average CPU Mark" referenced by https://www.cpubenchmark.net/cpu_list, the RAM, the disk write operations per second and the storage capacity.
-
-
Read the first four rows shown from the preceding table to determine the maximum number of base stations, devices and traffic load supported by your sizing segment.
-
If the current sizing does not fulfill your target deployment requirements, upgrade your hardware to the right sizing segment. For instance, if your current sizing segment is “XS” while you have an average of 0.5 messages per second, the right sizing segment is "S".

You can benchmark your hardware resource at any time:
-
After you have purchased your hardware equipment to verify that it fulfills the IoT deployment requirements that you want to put in place.
-
If you want to verify that your existing IoT deployment has the proper hardware sizing.
To do this, you can use one of the following procedures:
Using the ThingPark Enterprise benchmark script
-
Install the ThingPark Enterprise ISO on the targeted server.
-
Open an SSH session using the support user.
-
Ensure that Docker is stopped: `systemctl stop docker`.
-
Run `tpe-bench`.
The following capture shows an example of the script output:
Using sysbench without installing ThingPark Enterprise
You can benchmark your server without installing the ThingPark Enterprise ISO.
Note The server must be running a Linux distribution and sysbench must be installed.
For example, on Debian/Ubuntu: `apt install sysbench`.
-
Ensure no other workload is running on the server.
-
CPU bench:
-
Run the following command: `sysbench --threads=50 --time=10 --events=0 cpu run`
-
Compare the Minimum CPU score 2 shown in the preceding tablewith the "total number of events" value (in the "General statistics" section) from the sysbench output.
-
-
IO bench:
-
Go in a directory stored in the targeted device: `cd ...`
-
Prepare the bench by running `sysbench fileio --file-total-size=10G prepare`.
-
Run `sysbench --threads=50 --time=10 --events=0 --file-total-size=1G --file-test-mode=rndwr --file-extra-flags=direct --file-fsync-all=on fileio run`
-
Compare the “Disk OPS (write/s)” from the table above with the "writes/s" value (in the "File operations" section) from the sysbench output.
-
Cleanup: `sysbench fileio --file-total-size=10G cleanup`
-