# RTL8169 - Performance sehr langsam (~2-4 MB/s)

## ConiKost

Moin!

Ich habe hier so einen kleinen Geode LX800 Barebone. Da drin befinden sich 2x Realtek RTL8169SC Gigabit NICs.

Leider haben beide NICs eine extrem schlechte Performance...

```

00:0c.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)

00:0d.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)

```

Ich erreiche über Samba, FTP in etwa ~ 5MBs. Es sinkt teils auf maximal 2MB/s.

Ich habe einfach keinen Rat, warum die Performance so schlecht ist.

Ich habe es im 100Mbit Modus und Gigabit Modus probiert.

Was also könnte ich da noch machen?

emerge --info

```
Portage 2.1.5.6 (default/linux/x86/2008.0/server, gcc-4.3.1, glibc-2.8_p20080602-r0, 2.6.26-gentoo-r1 i586)

=================================================================

System uname: 2.6.26-gentoo-r1 i586 Geode(TM) Integrated Processor by AMD PCS

Timestamp of tree: Wed, 01 Oct 2008 05:45:02 +0000

ccache version 2.4 [enabled]

app-shells/bash:     3.2_p39

dev-java/java-config: 1.3.7, 2.1.6-r1

dev-lang/python:     2.5.2-r8

dev-util/ccache:     2.4-r8

sys-apps/baselayout: 2.0.0

sys-apps/openrc:     0.2.5

sys-apps/sandbox:    1.2.18.1-r3

sys-devel/autoconf:  2.63

sys-devel/automake:  1.4_p6, 1.7.9-r1, 1.10.1-r1

sys-devel/binutils:  2.18-r3

sys-devel/gcc-config: 1.4.1

sys-devel/libtool:   2.2.6a

virtual/os-headers:  2.6.26

ACCEPT_KEYWORDS="x86 ~x86"

CBUILD="i586-pc-linux-gnu"

CFLAGS="-march=geode -Os -mmmx -m3dnow -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -mfpmath=387"

CHOST="i586-pc-linux-gnu"

CONFIG_PROTECT="/etc /var/bind"

CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-march=geode -Os -mmmx -m3dnow -fno-align-jumps -fno-align-functions -fno-align-labels -fno-align-loops -pipe -fomit-frame-pointer -mfpmath=387 -fvisibility-inlines-hidden"

DISTDIR="/usr/portage/distfiles"

EMERGE_DEFAULT_OPTS=""

FEATURES="ccache distlocks fixpackages parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="ftp://de-mirror.org/distro/gentoo/"

LANG="de_DE.UTF-8"

LC_ALL="de_DE.UTF-8"

LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--sort-common -Wl,-s -Wl,-z,now"

LINGUAS="de"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_COMPRESS="gzip"

PORTAGE_COMPRESS_FLAGS="-f9"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

PORTDIR_OVERLAY="/usr/local/portage"

SYNC="rsync://rsync.de.gentoo.org/gentoo-portage"

USE="3dnow alsa berkdb bzip2 cgi crypt ftp iconv javascript jpeg lua mmx ncurses nls offensive pam png readline samba sasl slang ssl symlink tcpd threads truetype unicode vhosts x86 zlib" ALSA_CARDS="cs5535audio" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="alias auth_basic authn_file authz_host authz_user autoindex cache cgi deflate dir disk_cache filter log_config logio mime mime_magic mem_cache rewrite unique_id vhost_alias" APACHE2_MPMS="worker" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="cfontz hd44780" LINGUAS="de" LIRC_DEVICES="serial" USERLAND="GNU" VIDEO_CARDS="amd"

Unset:  CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, PORTAGE_RSYNC_EXTRA_OPTS

```

----------

## think4urs11

Duplexmodus, Prozessorauslastung, DMA-Modus und ähnliches hast du schon gecheckt? (auf beiden Seiten des Transfers)

GBit-Performance würde ich von den Kistchen nicht ernsthaft erwarten; 5MB klingen allerdings durchaus realistisch.

----------

## ConiKost

 *Think4UrS11 wrote:*   

> Duplexmodus, Prozessorauslastung, DMA-Modus und ähnliches hast du schon gecheckt? (auf beiden Seiten des Transfers)
> 
> GBit-Performance würde ich von den Kistchen nicht ernsthaft erwarten; 5MB klingen allerdings durchaus realistisch.

 

Hi!

5MB/s real? Das ist doch nen Witz o.O Sogar meine alte Realtek8139 packt ~ 11MB/s ... im Empfang. Gigabit erwarte ich natürlich nicht.

Laut "top" ist die Auslastung bei 5% maximal. DMA-Modus? In wie fern? Bei der Festplatte auf beiden Seiten aktiviert.

----------

## papahuhn

mach mal nen test mit iperf.

----------

## think4urs11

 *ConiKost wrote:*   

> 5MB/s real? Das ist doch nen Witz o.O Sogar meine alte Realtek8139 packt ~ 11MB/s ... im Empfang.

 

Nicht unbedingt.

Realteks sind nunmal keine Rennpferde sondern eher halbwegs brauchbare Arbeitstiere und ein Geode-LX ist auch kein Core2.

Wie sieht denn die Interruptlast aus während der Übertragung, wie gesagt Duplexmode sollte man mal schauen und etwas wie iotop mag auch nicht schaden.

----------

## ConiKost

 *papahuhn wrote:*   

> mach mal nen test mit iperf.

 

Hm, interessant:

```
[200]  0.0-10.0 sec   111 MBytes  93.2 Mbits/sec
```

Das Ding scheint ja nahezu die 100MBit zu bringen.

Gut, aber warum habe ich dann lokal auf der Linuxkiste und remote so schlechte Performance? ftp, samba, http. Keins liefert annähend mehr als 5MB/s.

Das merke ich auch daran, weil ich VDSL50 an der Kiste direkt dran habe. Ich schaffe es nichtmal von einem Root mit 5MB/s zu laden. (Nutze ich aber nen externen VDSL-Router, so schaffe ich am SELBEN Server die 5.6MB/s...)

 *Think4UrS11 wrote:*   

>  *ConiKost wrote:*   5MB/s real? Das ist doch nen Witz o.O Sogar meine alte Realtek8139 packt ~ 11MB/s ... im Empfang. 
> 
> Nicht unbedingt.
> 
> Realteks sind nunmal keine Rennpferde sondern eher halbwegs brauchbare Arbeitstiere und ein Geode-LX ist auch kein Core2.
> ...

 

Ja, der Geode LX ist keine Power, aber er hat genügend Speed dafür. Den ich habe eine andere GeodeLX mit einer Realtek 8139 und hier sind die 11MB/s drin. Keine Probleme. Duplexmode? Laut dem ethtool ist es auf "Full" gestellt, also aktiv.

iotop will nicht so recht?

```

Bl4ckB0x / # iotop

No module named _curses

To run an uninstalled copy of iotop,

launch iotop.py in the top directory

```

----------

## gimpel

Festplatte?! Schafft die denn mehr als 5MB/s zu schreiben/lesen?

----------

## ConiKost

 *gimpel wrote:*   

> Festplatte?! Schafft die denn mehr als 5MB/s zu schreiben/lesen?

 

Ja, Daten auf der Festplatte hin und her kopieren schaffe ich laut mc mit etwa ~ 15MB/s

----------

## ConiKost

Hier mal nen vmstat 1

Die ersten paar und die letzen paar Zeilen ist der Download wieder gestoppt. Sonst ein test wget, wo ich nicht über 2.5MB/s komme, obwohl der Server mehr hergeben kann...

```
Bl4ckB0x conikost # vmstat 1

procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----

 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa

 2  0     92 256292  46640 616108    0    0     0     0   70   24  1  1 98  0

 0  0     92 256292  46648 616108    0    0     0     0   48   40  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   43   12  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   41   10  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   44   12  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   51   24  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   44   17  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   44   14  0  0 100  0

 0  0     92 256292  46648 616108    0    0     0     0   44   20  0  0 100  0

 2  0     92 255920  46664 616300    0    0     0     0  234  208  1 12 84  3

 1  0     92 253688  46664 618392    0    0     0     0  409   89  3 97  0  0

 1  0     92 251580  46672 620564    0    0     0     0  634  139  0 75 25  0

 1  0     92 250092  46672 622156    0    0     0     0  421  124  0 34 66  0

 0  0     92 248480  46672 623712    0    0     0     0  580  316  0 39 61  0

 0  0     92 246744  46696 625276    0    0     0     0  820  439  1 25 61 13

 1  0     92 244636  46696 627448    0    0     0     0 1850 1190  0 14 86  0

 0  0     92 241412  46700 630588    0    0     0     0 1971  838  0 42 58  0

 0  0     92 239800  46700 632268    0    0     0     0  778  481  5 30 65  0

 1  0     92 237444  46704 634612    0    0     0     0 1188  583  1 21 78  0

 1  0     92 235708  46720 635920    0    0     0     0  849  374  0 50 50  0

 2  0     92 234096  46736 637644    0    0     0     0 1192  816  1 20 76  3

 1  0     92 232236  46744 639608    0    0     0     0  842  493  1 21 78  0

 1  0     92 230252  46748 641612    0    0     0     0  835  431  3 25 72  0

 1  0     92 228268  46748 643656    0    0     0     0  535  257  0 41 59  0

 1  0     92 226656  46772 644844    0    0     0     0  649  298  0 62 38  0

 0  0     92 224052  46776 647600    0    0     0     0 1743  983  1 30 63  6

 0  0     92 222316  46780 649416    0    0     0     0  708  416  0 26 74  0

 2  0     92 220332  46780 651348    0    0     0     0  762  402  0 29 71  0

 1  0     92 218472  46784 653292    0    0     0     0  609  260  1 30 69  0

 1  0     92 216736  46800 654444    0    0     0     0  569  262  2 52 46  0

 0  0     92 214628  46808 656740    0    0     0     0 1217  710  1 31 66  2

 5  0     92 212768  46812 658644    0    0     0     0  895  449  1 32 67  0

 0  0     92 211776  46812 659872    0    0     0     0  615  404  1 11 88  0

 0  0     92 211776  46812 659872    0    0     0     0   41   16  0  1 99  0

 0  0     92 211776  46812 659872    0    0     0     0   48   16  0  0 100  0

 0  0     92 211776  46812 659872    0    0     0     0   44   16  0  0 100  0

 0  0     92 211776  46812 659872    0    0     0     0   45   22  0  0 100  0

 0  0     92 211776  46812 659872    0    0     0     0   43   12  0  0 100  0

 0  0     92 211776  46812 659872    0    0     0     0   43   28  0  0 100  0
```

----------

## doedel

2,5mb/s bei einer 100MBit Karte ist durchaus realistisch, wenn man von folgendem ausgeht:

Die Realtek-Karten sind, gelinde gesagt, Klump, Hauptsache, dass man Netz hat.

Bei 100MBit/s wären theoretisch 12,5MB/s möglich. Selbst in meiner Ausbildung mit wirklich guter und teurer Cisco-Hardware habe ich nie etwas schnelleres als 8-9MB/s gesehen.

Der Rechner selber ist auch nicht das Gelbe vom Ei...

----------

## ConiKost

 *doedel wrote:*   

> 2,5mb/s bei einer 100MBit Karte ist durchaus realistisch, wenn man von folgendem ausgeht:
> 
> Die Realtek-Karten sind, gelinde gesagt, Klump, Hauptsache, dass man Netz hat.
> 
> Bei 100MBit/s wären theoretisch 12,5MB/s möglich. Selbst in meiner Ausbildung mit wirklich guter und teurer Cisco-Hardware habe ich nie etwas schnelleres als 8-9MB/s gesehen.
> ...

 

Warum schaffen dann hier so ziemlich alle meine Realtek 8139 Karten ~ 10-11MB/s? Das kann ich mir dann einfach nicht erklären. Bei selber CPU und Austattung. Das kann ich irgendwie nicht ganz verstehen. Ich mein wären es so 5-7MB/s konstant wenigstens... aber die fallen ja oft auf 2MB/s runter...

----------

## doedel

Das wundert mich aber...

Ich werde mich heute Abend mal hinsetzen und ein paar Netzwerkkarten durchprobieren, eine 8169 habe ich nicht, bekomme aber sicher noch irgendwo eine zum Testen geliehen.

----------

## papahuhn

 *doedel wrote:*   

>  Selbst in meiner Ausbildung mit wirklich guter und teurer Cisco-Hardware habe ich nie etwas schnelleres als 8-9MB/s gesehen.

 

Ich weiss nicht, mit was für Hardware ihr da arbeitet. Mit meiner onboard Realtek (Gigabit) bekomme ich mit einem Fast Ethernet HP Switch über ein 4adriges Kabel teilweise 24MB/s Full Duplex. 11.x MB/s in einer Richtung sind gar kein Problem.

----------

## doedel

Ja Gbit, aber es ging doch um die Geschwindigkeit bei 100Mbit.

Ich habe jetzt mal ein bisschen rumprobiert und auf einem Athlon XP, 2800+, 512MB Ram mit einer 8139 und einer Knoppix 5.1.1 (Da ist nur ein Windows drauf) ca 6MB/s hinbekommen, eine 8169 habe ich auf die schnelle nicht gefunden.

Die zu Anfangs erwähnten 5MB/s wären also durchaus noch in Ordnung. 2MB/s aber schon etwas lahm, wobei ich nicht glaube, dass man damit dann noch mehr hinbekommt. Sehr wahrscheinlich wird er nicht über den 100Mbit-Mode herauskommen.

Hast du denn 100Mbit Geräte im Netz? Bei hirnrissiger Netzkonfiguration mit Hubs oder billigst-Switches bremst das aus.

----------

## papahuhn

 *doedel wrote:*   

> Ja Gbit, aber es ging doch um die Geschwindigkeit bei 100Mbit.

 

Ich hab doch Fast Ethernet geschrieben. Die Karte kann Gigabit, aber nicht das Kabel und der Switch.

----------

## ConiKost

Nabend!

Also folgender Stand:

eth0 -> Verbindung zum Switch

eth1 -> Verbindung zum VDSL-Modem

Tja, das Senden von Daten via Samba oder FTP an Clients im Netzwerk klappt anfangs mit ~ 10MB/s, ist aber nach 20% spätestens bricht es komplett ein und es sind nur noch ~ 2MB/s. Beim Senden von Clients auf die Kiste wird ebenfalls kurz Anfangs ~ 7MB/s erreicht, bricht aber sofort auf teils weniger als 1MB/s ein. 

Zudem gibts nun etwas interessantes... lade ich direkt auf der Kiste via wget auf eins im RAM gemountetes Volume, so schaffe ich es stabil auf ~ 5.5MB/s im Download. Dagegen auf der Festplatte bricht es recht stark ein zwischen 2-3MB/s. Wie kann das sein? Einzelnes Kopieren von Dateien geht zügig mit 30MB/s hin und her auf der Festplatte? Genauso ist es, dass jeder Client, welcher im Netzwerk per NAT ins Internte soll, maximal 500KB/s im Transfer schafft.

Sämliche Probleme hatte ich mit meiner vorherigen Kiste nicht gehabt. Die war von der Technik das selbe, nur eben anstatt Dual Gigabit war eine 10/100 Realtek Karte drin, welche eben sehr Fix war...

----------

## gimpel

 *ConiKost wrote:*   

> Einzelnes Kopieren von Dateien geht zügig mit 30MB/s hin und her auf der Festplatte?

 

Kopierst du da von einem filesystem aufs andere, oder innheralb eines filesystems? Innerhalb wären 30MB/s wirklich übelst.

Was sagt denn hdparm -tT?

Das mit dem NAT ist aber auch komisch.

Teilen sich die Karten etwa den selben interrupt? cat /proc/interrupts

BTW..

```
02:0f.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)
```

und null problemo da mit 10MB/s per NFS was aufm Mac im anderen Zimmer zu schieben. Samba geht so mit 5-6MB/s

----------

## ConiKost

 *gimpel wrote:*   

> Kopierst du da von einem filesystem aufs andere, oder innheralb eines filesystems? Innerhalb wären 30MB/s wirklich übelst.
> 
> Was sagt denn hdparm -tT?

 

Also bei mir sind fast alle Partionen in xfs und /home in ext3. Hab einfach mal durch die verschiedenen Partionen hin und her kopiert.

hdparm:

```
Bl4ckB0x home # hdparm -tT /dev/sda

/dev/sda:

 Timing cached reads:   382 MB in  2.00 seconds = 190.68 MB/sec

 Timing buffered disk reads:  100 MB in  3.04 seconds =  32.91 MB/sec

```

 *gimpel wrote:*   

> 
> 
> Das mit dem NAT ist aber auch komisch.
> 
> Teilen sich die Karten etwa den selben interrupt? cat /proc/interrupts

 

Bitte sehr:

```
Bl4ckB0x / # cat /proc/interrupts

           CPU0

  0:    2338506    XT-PIC-XT        timer

  2:          0    XT-PIC-XT        cascade

  5:          0    XT-PIC-XT        CS5535 Audio

  7:          0    XT-PIC-XT        parport0

  9:          0    XT-PIC-XT        acpi

 10:    1580265    XT-PIC-XT        eth0

 11:    1839797    XT-PIC-XT        ehci_hcd:usb1, ohci_hcd:usb2, eth1

 14:      37474    XT-PIC-XT        pata_cs5536

NMI:          0   Non-maskable interrupts

ERR:          0

```

----------

## ConiKost

Ich habe eben Windows XP auf einer zweitne HDD installiert. Als eine Art Testinstallation.

Also Windows XP ist der Server in dem Fall. Nicht der Client!

Status:

"Samba", FTP und co. Alles bei ~ 11MB/s konstant!! Jeder Client zieht von dem Windows XP Fullspeed...

NAT durch Windows XP: Vollspeed ~ 5.5MB/s.

Tja. Windows XP schafft vollen Speed :> Warum also bricht Linux so stark ein?

----------

## ConiKost

Moin!

Ich habe heute Debian Lenny Beta2 ausprobiert.

Sehr Interessant. Hier erreichen beide Gigabit NICs volle 100MBit. Samba läuft mit ~ 11MB/s. Keine Probleme!

Kernel ist 2.6.24. Auch das NAT macht keine 500KB/s sondern volles VDSL50 mit...

Ne Idee wo ich jetzt schauen könnte was da anders ist?

----------

## firefly

eventuell dateisystem? oder hast du mit debian auch xfs verwendet oder der kernel ist in der hinsicht fehlerhaft konfiguriert

----------

## ConiKost

 *firefly wrote:*   

> eventuell dateisystem? oder hast du mit debian auch xfs verwendet oder der kernel ist in der hinsicht fehlerhaft konfiguriert

 

Hi!

Nun, Samba hat auf /home ein Verzeichnis, und damit ist es ext3. Debian war ebenfalls mit ext3 installiert worden. Das Problem mit dem langsamen NAT habe ich jetzt gelöst. Scheinbar darf ich den MTU Wert nicht setzen, obwohl es so in vielen Howtos für VDSL steht. Erreiche nun via NAT ~ 5.5MB/s. Also wunderbar.

Problem bleibt aber, dass reiner Netzwerktransfer via FTP, Samba und co. maximal bei ~ 2-3MB/s bleibt. Irgenwie unlogisch o.O

----------

## think4urs11

evtl. das gleiche Problem, d.h. unterschiedliche MTU-Settings auf den beteiligten Rechnern (Jumbo-MTU auf der GB-Karte z.B.)

----------

## ConiKost

 *Think4UrS11 wrote:*   

> evtl. das gleiche Problem, d.h. unterschiedliche MTU-Settings auf den beteiligten Rechnern (Jumbo-MTU auf der GB-Karte z.B.)

 

Würde ich jetzt eher nein sagen. Ich habe momentan ALLE Karte in den 100mbit Modus versetzt und MTU bei jedem Client auf 1500. (Halt Standardwert) Trotzdem ist das Problem noch da.

----------

