Hi Laslo and Anselm, Laslo Hunhold <d...@frign.de> wrote: > On Mon, 23 Sep 2019 13:07:47 -0700 > Anselm Garbe <garb...@gmail.com> wrote: > > Thanks for doing that and letting me know. So the reason you see this > > performance penalty in contrast to the other web servers you mention > > is, that quark is a fork() based web server (and current HEAD is still > > fork() based). That's the whole reason ;) > > I also guessed that this might be the reason before the results came. > Now it is pretty certain, especially when we also note that fork() has > a higher penalty on OpenBSD compared to Linux.
Thanks for your assessments! I think you've hit the nail on the head. I got my initial test results on an OpenBSD machine. I tested the golang server and quark again on a Linux machine today and the difference is much less pronounced: quark (Linux): 14494 requests/second golang (Linux): 16601 requests/second As you'd expect the difference also declines when the requested file is larger. With an index.html, that is 1MiB in size I got these results: quark (OpenBSD; 1MiB index.html): 160 requests/second golang (OpenBSD; 1MiB index.html): 198 requests/second > Quark is actually very lean and offers 99% of the features you would > expect for a static server. I personally am a big fan of OpenBSD's > httpd and will use it on the server I am currently setting up. > > I see quark's role more like a "drop-in" server you can invoke > literally in seconds from the command line to share some data on the > network. In this form, it is not so trivial with other servers. For > "settled" servers with a fixed configuration, OpenBSD httpd works > flawlessly in my opinion! Thanks for the insight! I was thinking about using quark instead of OpenBSD's httpd, because it simpler to use and probably even more secure. I think ~1000 requests/second is still plenty for all my projects, but in case I need the extra performance some day, I know what the bottleneck is. With best regards, Richard Ulmer