Hi! I am trying to relate OpenBSD firewall's performance in accepting new connections per second to that of commercial products (for example FortiGate 800C literature says 190k, Sonicwall 6600 90k). I would like you to comment how would be correct way doing it and also what are so to say common results for other users.
My test firewall is OpenBSD amd64 v. 5.3 on Dell PowerEdge 320 (12 cores, 24G ram, 4x1G Intel quad port network adapter). And it has very basic pf configuration, essentially letting some tcp connections thru like so pass in quick on $if_ext to 10.184.41.179 tag TO_HTTP pass out quick on $if_int tagged TO_HTTP and pf states limit set to 1M. It does not nat or synproxy. My network setup contains two decent linux computers on one side doing http requests with weighttp and on the other side are two linux computers answering http requests with nginx. Using the same subnet i estimated that in my setup one weighttp could generate about 23k connections per second (one http request has 9-10 ip packets and every request uses separate tcp connection) # /root/bin/weighttp -n 40000000 -c 100 -t 4 http://10.184.41.179/ And one nginx could answer about 30k request per second. First round was OpenBSD acting as a router with packet filter switched off. I am not sure, but it seems i hit ceiling at around 50 k new connections per second since (and around 290 kpps incoming packets) # netstat -I em0 -w 1 starts to show some errors there. Second round was with packet filter switched on and maximum seems to be around 25k new connections per second (is my understanding correct that inserts (in this case divided by two)) is good mesure for that?) # pfctl -Fi; sleep 10; pfctl -si | grep -A 4 "State Table" pf: statistics cleared State Table Total Rate current entries 466621 searches 4239544 423954.4/s inserts 497542 49754.2/s removals 502588 50258.8/s During these tests i noticed systat says interrupts where at around 18k (equally over 8k at em0 and em1) but otherwise firewall was responsive i.e. command line was usable, load was low etc. I would be thankful if you comment on this test setup and kindly share similar results if you have done that kind of test yourselves. But most importantly, i would like to know what indicators i should better be looking at and what tunables are relavant i could change to get more new connections per second. Best regards, Imre