Skip to content

Getting stable

Pre-release
Pre-release

Choose a tag to compare

@alfreb alfreb released this 22 Jun 07:38
· 9350 commits to main since this release

A few bugs were found and fixed after running a new stress test. The OS seems very stable now, having survived a continous flood of Arp, ICMP and HTTP packets, run in parallel over ~9 hours. The VM showed no signs of having problems and gave a HTTP request rate of 3327.1 conn/s. after the flood had ended.

Test results:

  • Ping-flood: $ sudo ping -f 10.0.0.42
    101095327 packets transmitted, 101095294 received, 0% packet loss, time 31206908ms
  • Arp-flood: $ sudo arping -w 100 10.0.0.42
    1715415846 packets transmitted, 857201224 packets received, 50% unanswered (0 extra)
  • httperf: $ time httperf --hog --server 10.0.0.42 --num-conn 100000000
Total: connections 382691 requests 382690 replies 382690 test-duration 31343.418 s` 
...
Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

real    522m53.450s
user    74m18.515s
sys     448m57.559s

The connection rate on http was very poor, 12.2 req/s., but I guess that’s quite understandable. Asking httperf to do a 100 million requests as fast as it possible will very likely just suck up all the available outgoing sockets / file descriptors.

  • VM diagnostics:
    Current memory usage: 1122304 b, (1.122304 MB)
    Recv: 23726780 Sent: 277016620

Experiment details:

  • The three tests were run individually in parallell, from separate processes / screens, towards the same, singular VM with one CPU core. The tests were stopped manually after having run overnight.
  • After ending the flood, without restarting the VM, it gave the following response:
    $ time httperf --hog --server 10.0.0.42 --num-conn 1000
Connection rate: 3327.1 conn/s (0.3 ms/conn, <=1 concurrent connections)
Connection time [ms]: min 0.3 avg 0.3 max 1.6 median 0.5 stddev 0.0
Connection time [ms]: connect 0.2
Connection length [replies/conn]: 1.000

Request rate: 3327.1 req/s (0.3 ms/req)
Request size [B]: 62.0

Reply rate [replies/s]: min 0.0 avg 0.0 max 0.0 stddev 0.0 (0 samples)
Reply time [ms]: response 0.1 transfer 0.0
Reply size [B]: header 234.0 content 489.0 footer 0.0 (total 723.0)
Reply status: 1xx=0 2xx=1000 3xx=0 4xx=0 5xx=0

CPU time [s]: user 0.09 system 0.21 (user 29.5% system 70.2% total 99.7%)
Net I/O: 2553.3 KB/s (20.9*10^6 bps)

Errors: total 0 client-timo 0 socket-timo 0 connrefused 0 connreset 0
Errors: fd-unavail 0 addrunavail 0 ftab-full 0 other 0

NOTE: We've seen much higher connection rates on other platforms (e.g. 16000 conn/s. has been reported), so the numbers above should not be taken as measure of IncludeOS performance.