[email protected] said: > So after much fiddling I managed to get some C applications (web servers) > compiling as rump kernels, specifically thttpd and mathopd
Great! > When I use the siege benchmarking tool to hit the server harder, after maybe > a few hundred or thousand successful requests, the siege client starts > returning socket errors. Here is an extract from a much longer output: ... > [error] socket: read error Connection reset by peer sock.c:479: Connection > reset by peer > The notable thing here is that the same problem occured on both web servers. > > Anyone got any ideas what might be behind the socket errors? I ran into this as well when load-testing rump-mathopd and others. You need to increase the amount of memory allocated to the unikernel. Running with -M 128 should give you a stable system. Either that or run your siege tests with keep-alive enabled, which will use much less kernel resources as you won't be creating a new socket for each request. As Antti writes, the main reason these extra resources get used is that each socket stays around for a while in TIME_WAIT state. Martin
