Performance Evaluation of HTTP Web Servers in Embedded Systems
Total Page:16
File Type:pdf, Size:1020Kb
Performance evaluation of HTTP web servers in embedded systems DANIEL LIND Master of Science Thesis Stockholm, Sweden 2014 2 Prestandautvärdering av HTTP webbservrar i inbyggda system av Daniel Lind Examensarbete MMK 2014:05 MDA 442 KTH Industriell teknik och management Maskinkonstruktion SE-100 44 STOCKHOLM 3 Performance evaluation of HTTP web servers in embedded systems Daniel Lind Master of Science Thesis MMK 2014:05 MDA 442 KTH Industrial Engineering and Management Machine Design SE-100 44 STOCKHOLM 4 Examensarbete MMK 2014:05 MDA 442 Prestandautvärdering av HTTP webbservrar i inbyggda system Daniel Lind Godkänt Examinator Handledare 2014-02-23 Martin Edin Grimheden Sagar Behere Uppdragsgivare Kontaktperson Syntronic AB Mladen Nikitovic Sammanfattning Detta examensarbete utfördes i samarbete med Syntronic AB. Syftet var att utröna vilken prestanda som kunde uppnås med Hypertext Transfer Protocol (HTTP) servrar på utvalda hårdvaruplattformar för inbyggda system. Resultatet skulle vara användbart för den som ska välja en hårdvaruplattform till ett inbyggt system med en HTTP-server, och utvärderingen innehöll därför beteende under belastning, belastningsgränser, samt användning av systemresurser. Prestandamätningar användes för att generera data för analys, och en förstudie utfördes för att bestämma vilka plattformar, funktionalitet och prestandaparametrar som skulle ingå i studien. Tre hårdvaruplattformar med olika prestandanivåer - BeagleBoard-xM, STK1000 och Syntronic Midrange - valdes ut. En simulerad webapplikation användes under testen och totalt testades fem HTTP-serverprogramvaror. BeagleBoard-xM med BusyBox httpd hade totalt sett den bästa prestandan vid körning av testapplikationen. Den hade en hög överbelastningspunkt, korta behandlingstider samt överlägset beteende under överbelastning. Midrange med en modifierad version av en server skapad av Stefano Oliveri presterade dock bättre när den inte var överbelastad. STK1000 presterade klart sämre än de andra plattformarna. Beteendet under överbelastning och effektiviteten i utnyttjandet av systemresurer skilde sig kraftigt åt mellan de olika servrarna. Testresultaten visade också att det var stor skillnad mellan HTTP-serverprogramvarorna som kördes på samma hårdvaruplatform, och generellt sett presterade programvaror med ett begränsat antal funktioner bäst. 5 Master of Science Thesis MMK 2014:05 MDA 442 Performance evaluation of HTTP web servers in embedded systems Daniel Lind Approved Examiner Supervisor 2014-02-23 Martin Edin Grimheden Sagar Behere Commissioner Contact person Syntronic AB Mladen Nikitovic Abstract This Masters Thesis was carried out in cooperation with Syntronic AB. The purpose was to determine what was possible in terms of Hypertext Transfer Protocol (HTTP) server performance on selected hardware platforms for embedded systems. The results should be valuable for those who are about to select a hardware platform for an embedded system that will contain a HTTP server, and the evaluation therefore included load limits, performance characteristics and system resource usage. The required data was gathered with performance measurements, and a pre-study was performed to decide on platforms, functionality and performance parameters to include in the study. Three hardware platforms with different levels of performance - BeagleBoard-xM, STK1000 and Syntronic Midrange - were selected. A simulated web application was used during the tests and a total of five HTTP server software were tested. BeagleBoard-xM with BusyBox httpd had the best overall performance when running the test application. It had a high overload point, low connection durations when not overloaded, and a superior overload behavior. However, Midrange with a modified version of a server made by Stefano Oliveri performed better when not overloaded. STK1000 was far behind the other two platforms in terms of performance. The overload behavior and efficiency of system resource usage differed greatly between the servers. The test results also showed that the performance varied significantly between HTTP server software running on the same hardware platform, and generally the software with limited feature sets performed best. 6 Acknowledgements I would like to express my gratitude to the people who have supported me during the work with this thesis: ● Examiner: Mats Hanson, KTH ● Supervisors: Sagar Behere, KTH and Mladen Nikitovic, Syntronic AB ● David Näslund, Syntronic AB Stockholm June 14, 2013, Daniel Lind 7 Table of Contents 1. Introduction.....................................................................................................................10 1.1 Background................................................................................................................10 1.2 Problem description....................................................................................................11 1.3 Purpose......................................................................................................................11 1.4 Methodology...............................................................................................................11 1.5 Delimitations...............................................................................................................12 1.6 Pre-study results.........................................................................................................13 2. Available HTTP server software.....................................................................................15 2.1 Barracuda Embedded Web Server.............................................................................17 2.2 yaSSL Embedded Web Server...................................................................................17 2.3 Boa Webserver...........................................................................................................17 2.3.1 Comments...........................................................................................................18 2.4 KLone.........................................................................................................................18 2.5 Fusion Embedded™ HTTPS......................................................................................18 2.6 BusyBox httpd.............................................................................................................18 2.6.1 Comments...........................................................................................................18 2.7 Appweb™...................................................................................................................19 2.8 Cherokee....................................................................................................................20 2.9 thttpd - tiny/turbo/throttling HTTP server.....................................................................20 2.9.1 Comments...........................................................................................................20 2.10 Lighttpd.....................................................................................................................21 2.11 HTTP servers built on top of lwIP..............................................................................21 3. Measuring embedded HTTP server performance.........................................................22 3.1 Performance parameters............................................................................................22 3.2 Factors affecting measurement results.......................................................................22 3.2.1 The server...........................................................................................................23 3.2.2 The network........................................................................................................24 3.2.3 The web application............................................................................................25 3.2.4 The clients...........................................................................................................25 3.2.5 Conclusions.........................................................................................................26 3.3 Preparation.................................................................................................................26 3.4 Measurement methodology........................................................................................26 3.5 Tools...........................................................................................................................27 4. Test environment.............................................................................................................28 4.1 Client..........................................................................................................................28 4.2 Servers.......................................................................................................................28 4.2.1 BeagleBoard-xM.................................................................................................28 4.2.2 STK1000.............................................................................................................29 4.2.3 Midrange.............................................................................................................30 5. Test methodology............................................................................................................31 5.1 Simulated web application, instrument panel..............................................................31