-
Notifications
You must be signed in to change notification settings - Fork 2
Performance
There are many things you can do to improve/degrade the performance of a FireREST™ network.
FireREST provides a load test for benchmarking.
Load test output is written to target/load.log.
Compare your target/load.log with other logs in the test folder.
- Raspberry Pi: High overclock, 30MB/s SD heavily used, wired network
- Raspberry Pi: High overclock, 30MB/s SD heavily used, but re-imaged, wired network
- Raspberry Pi: High overclock, 30MB/s SD heavily used, wi-fi network.
Although we commonly focus on bandwidth as a measure of network speed, a more important consideration for manufacturing is response latency. FireREST™ requests fall into two groups:
- Readily available large data chunks such as JPG images.
- Small data chunks with processing delays such as JSON responses from FireSight pipelines
Network protocols are designed to work quickly with responsive nodes. The corollary is that slow nodes will exhibit latency. For example, a Raspberry Pi on a wired network will typically respond to a process.fire request about 1.5 times faster than on a wi-fi network.
Single board computers often use SD cards for data storage. Use high-quality SD cards with data transfer speeds of 30MB/s or higher. Additionally, SD cards slow down (as much as 4x slower) after repeated writes. Replace or reformat SD cards after prolonged use. GParted or other similar software will freshen up your SD card by minimizing the SD card partition. Expand the partition after minimizing and you'll get your speed boost.
Transfer speeds do make some difference. Benchmarks suggest as much as 1.2x speed boost can be had with a card that's twice as fast. However, it may not be worth the cost:
Color is prettier, but if you can use grayscale, your FireREST/CV CVEs will only have to deal with 1/3 the information and will run faster. For example, CVE locate-part will typically run about 1.6x faster in the gray profile instead of the bgr profile.