Mittwoch, 30. Juli 2008

Benchmarks für Networking Stack

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


Aus den Ergebnissen kommt Oliver zu dem Schluss, dass Haikus Netzwerkgeschwindigkeit zwar beiweiten noch nicht perfekt, aber immerhin soweit akzeptabel ist, dass er sich anderen Aufgaben zuwenden kann.

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