vanheusden.com

iESP

contents

performance on microcontrollers

The performance depends on the speed of WiFi and the SD-card. A quick test (software version a19934d) with a random (SDHC) 32GB card shows 418kB/s linear read and 79 iops for random reads.

click on an image to see it in full size

ESP32 & an SD card

Block size versus latency:

4 node RAID-5 setup

Here I configured 4 Wemos32 to run iESP. Each had a 32 GB SD card, all connected to the same WiFi. My laptop then connected to each iSCSI target and combined them in one RAID-5 device on Linux. I then created the following graphs using the included "block-speed.py" script.

Photo of the configuration:

For what it is worth; a plot of the WiFi spectrum at time of the performance benchmark:

Analysis with iometer (measurer on the Linux laptop, GUI on an other (windows-)laptop):

Ethernet

Some ESPs have an Ethernet adapter on board. Like the wt32-eth01. With that board I ran my own my own benchmark which produces the following graph (using gnuplot):

CPU load & I/O wait during a run of block-speed.py against iESP over Ethernet (retrieved via SNMP from the device itself):

Teensy 4.1

The Teensy 4.1 microcontroller by Paul Stoffregen is a 600 MHz ARM based Arduino compatible microcontroller. It has an on-board SD-card reader and with some soldering an Ethernet interface. The tight coupling of all components gives speeds (with iESP or iTEENSY) of up to 6 MB while accessing the SD-card.

Bandwidth of the Teensy 4.1 compared to the ESP in different configurations:

Same benchmark data but a plot of the IOPs metric:

Here you see that this microcontroller easily maxes out the 100Mb Ethernet adapter it has on board:

Linux: compared against 'tgt' and nbd-kit

Visibile here is that the ESP32 version is dwarfed by the laptop (a regular intel i5 system). Yet iESP on a Linux laptop is on par with other network blockdevices.




For contact info, see this page.