Oliver Tappe (zooey) hat den Haiku Networking Stack unter die Lupe genommen und die Geschwindigkeit vor und nach einigen kleinen Änderungen mit anderen Betriebssystemen verglichen.
Dazu testete er das Localhost Interface mittels:
netperf -f M -t UDP_STREAM -- -m 32768 -s 65500,65500 -S 65500,65500
netperf -f M -t TCP_STREAM -- -m 32768 -s 65500,65500 -S 65500,65500
netperf -t UDP_RR
netperf -t TCP_RR
Operating System | UDP_STREAM [MB/s] | TCP_STREAM [MB/s] | UDP_RR [req/s] | TCP_RR [req/s] |
Ubuntu (VM) | 88 | 52 | 7549 | 7379 |
Zeta (VM) | send: 182 recv: 42 | 109 | 3256 | 3256 |
OpenSolaris (VM) | send: 567 recv: 49 | 195 | 2295 | 2653 |
Haiku (VM) vorher | 2 | 29 | 1510 | 911 |
Haiku (VM) nachher | send: 64 recv: 4 | 65 | 1730 | 1636 |
|
|
|
|
|
openSUSE (native) | 737 | 576 | 41932 | 32091 |
Haiku (native) vorher | 2 | 127 | 15898 | 12216 |
Haiku (native) nachher | send: 65 recv: 41 | 117 | 15745 | 11976 |
Wie die Ergebnisse zeigen, konnte die UDP Performance durch relativ kleine Änderungen beträchtlich gesteigert werden.
Oliver erklärt die großen Unterschiede zwischen send und recv mit dem Design des Localhost Interface: Der Sender- und Receiver-Thread blockieren sich oft gegenseitig. Größere Receive-Puffer könnten diese Situation lösen. Oliver wollte jedoch den Test nicht dahingehend manipulieren; es ist eigentlich nicht wichtig und wie man sieht ist das bei anderen Systemen ähnlich.
Hier die Ergebnisse, bei denen statt des Localhost ein Linux Server über ein Gigabit-LAN (nforce Chipsatz) angesprochen wurde:
Operating System | UDP_STREAM [MB/s] | TCP_STREAM [MB/s] | UDP_RR [req/s] | TCP_RR [req/s] |
openSUSE | 113 | 111 | 211 | 9714 |
Haiku | 38 | 40 | 595 | 632 |
Und hier ein realitätsnahes Beispiel bei der Übertragung einer 520MB Datei per FTP:
Operating System | FTP get [MB/s] | FTP put [MB/s] |
openSUSE | 51 | 48 |
Haiku | 35 | 34 |
Marcus Overhagen vermutet, dass sich auch Haikus momentan suboptimal arbeitender Scheduler negativ auf die Netzwerkperformance auswirkt. Der Scheduler, der die verfügbare CPU-Kapazität möglichst effektiv unter die wartenden Programm-Threads verteilen soll, wird seit längerem von GSoC-2007-Student Andre Braga überarbeitet. Hoffentlich sehen wir bald die Früchte seiner Arbeit und damit weitere Geschwindigkeitssteigerungen.
Keine Kommentare:
Kommentar veröffentlichen