OpenBSDs PF - Jetzt mehr als doppelt so schnell!

oenone

Well-Known Member
Seit dem Hackathon dieses Jahr gibt es ein paar starke Veränderungen an OpenBSDs PF, wodurch sich die Performance um über 100% verbessert haben sollte.

Zum Zeitlichen Ablauf:

2007-05-28 8:48:15: mcbride@ committed Code, wodurch add_net_randomness() nur noch einmal pro Interrupt statt pro Packet aufgerufen wird. Dies verbessert spürbar die Performance auf Soekris boxen.

2007-05-28 17:16:39: henning@ committed Code, durch den die Performance verdoppelt wird. Bisher benutzte PF einen mbuf-Tag, um gewisse Informationen zu speichern. Jedes Packet, das durch PF geht, bekommt so einen. Diese Tags benutzen Speicher, der durch malloc reserviert wird, und das ist sehr langsam. Durch die Änderungen werden die Informationen direkt im mbuf-Header gespeichert.

2007-05-29 0:50:41: henning@ committed wieder Code, durch den die Performance nochmals um mindestens 10% verbessert wird. Bisher hat PF immer die Protokoll-Checksummen überprüft, von jedem Packet, das PF passiert. Dies ist allerdings nicht nötig und wurde so geändert, dass die Checksumme erst überprüft wird, bevor ein RST zurückgeschickt wird, wodurch sich die Fälle, bei denen es überprüft wird sehr stark reduziert.

Diese Änderungen befinden sich schon in OpenBSD-current und werden in OpenBSD 4.2 einfließen.

Auf Bald,
oenone

Quellen:
undeadly-Artikel
Commit-Message von mcbride@
erste Commit-Message von henning@
zweite Commit-Message von henning@
Präsentation, in der die Verbesserungen nochmals erwähnt werden
 
Zuletzt bearbeitet:
Oben