ureq on ESP8266

This page contains summary of load testing experiment conducted with help of Redit and Hacker News users. The goal was to check how much http trafic can be handled by ESP8266 (64KB DRAM, 96KB SRAM, 32-bit RISC CPU running at 80Mhz), powered by ureq framework, before it dies. It has done rather a good job! Thank you all for participating! Threads: Reddit, Hacker News.

How did it perform?

Statistics
Duration: ~30 hours
Number of HTTP requests answered: ~40 000
Average requests per user: ~2.94
Most requests from a single user: 610 requests
Invalid requests: 432
ESP8266 processor clock: 80 MHz
ESP8266 RAM: 64KB DRAM
96KB SRAM
Connection type: wireless

After handling first 3k requests the device hang. After minimizing number of concurent connections allowed device maintained stability. At some point, when the traffic has increased dramatically, I decided to merge style.css and index.html to halve number of requests required to serve the landing page. Then I decided to ignore requests for /favicon.ico (about 1/4 of requests were requests demanding favicon). Last change was to force reboot every 400 requests so I didn't have to watch it all the time. Since that moment, there were no outages.

How it looked like?

Physically. In the foreground there's a ESP01 module, mounted on a simple board with a switch for selecting boot state, in the background there's an USB-UART converter.

Click here to see webpages that were served directly from the chip.

200 OK

Fork me on GitHub