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

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…

[code] 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)
[/code]

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

[code]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
[/code]

15 Comments

  1. turbo

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    wie hoch ist die cpulast? schluckt ein programm oder der kernel die leistung weg? napi support im modul an?

    edit:
    lvm, raid, dmcrypt o.ä. am laufen?

  2. Excalibur1976

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Ich tippe fast auf IPv6: Deaktiviere es mal (Kernelmodul)

  3. Quickbeam2k1

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Benutz IPv6 oder IPv4 ? ich hatte da mit ipv6 unter linux auch mal performanceprobleme.

  4. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Nabend!
    1) IPv6 ist via USE Flags und im Kernel komplett deaktiviert. Ist ein Gentoo OS von Stage1 aufgebaut.
    2) Laut Top liegt die CPU-Last bei 5% maximal…
    3) kein dmcrypt, lvm oder ähnliches. Einfach stinknormale Partionen.

  5. Drago

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Andere Frage: Welchen Treiber und welche Treiberversion verwendest du?

    Ich habe derzeit die v2.3LK-NAPI laufen und kann mich eigentlich nicht über die Performance beklagen.

    EDIT: Der Post ist natürlich Schwachsinn (…das nächste Mal wäre vorher genau lesen von Vorteil…), da ich eine andere NIC im Schleppi habe (Elitegroup RTL8101E PCI Express Fast Ethernet controller, wird aber dennoch durch r8169 angesprochen).

  6. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    [quote=“Drago, post: 16711″]Andere Frage: Welchen Treiber und welche Treiberversion verwendest du?

    Ich habe derzeit die v2.3LK-NAPI laufen und kann mich eigentlich nicht über die Performance beklagen.

    EDIT: Der Post ist natürlich Schwachsinn (…das nächste Mal wäre vorher genau lesen von Vorteil…), da ich eine andere NIC im Schleppi habe (Elitegroup RTL8101E PCI Express Fast Ethernet controller, wird aber dennoch durch r8169 angesprochen).[/QUOTE]

    Ich habe die Treiber, welche im Kernel 2.6.26.x direkt drin sind. NAPI ist aktiviert. Habs auch ohne NAPI probiert, aber nahezu keine Besserung…

    Könnte ein Hardwaredefekt vorliegen?

  7. turbo

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    mal ne dumme frage, aber wie siehts mit der festplatte aus? läuft die vielleicht im pio-modus?
    wie siehts mit der mtu aus? 1500 sollte es normalerweise sein. bei gbit kannst du z.t. auch mehr einstellen, kommt dann aber auf die verwendeten komponenten an, da nciht alle jumbo frames unterstützen. zudem sind die jumbo frames nicht exakt in ihrer größe genormt. je nach hersteller zwischen ~7000 und 9600 bytes

  8. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    [quote=“turbo, post: 16743″]mal ne dumme frage, aber wie siehts mit der festplatte aus? läuft die vielleicht im pio-modus?
    wie siehts mit der mtu aus? 1500 sollte es normalerweise sein. bei gbit kannst du z.t. auch mehr einstellen, kommt dann aber auf die verwendeten komponenten an, da nciht alle jumbo frames unterstützen. zudem sind die jumbo frames nicht exakt in ihrer größe genormt. je nach hersteller zwischen ~7000 und 9600 bytes[/QUOTE]

    Hi!
    Die Festplatte ist via libata und hat DMA aktiv. Laut mc schaff ich so ~ 30MB/s. Also eigentlich kein Problem.

    MTU ist Standard auf 1500 für beide NICs eingestellt. ppp0 auf 1476, weil VDSL.

    Hier mal nen vmstat, wenn ich was lade mit wget direkt auf der Kiste. Komme ich nicht über 3MB/s hinnaus, obwohl der Server mehrhergibt 🙁 Ich habe hier halt VDSL50, aber halt selbst von privaten Root Servern kriege ich keine 5.6MB/s. (Nutze ich nen externen VDSL-Router der Telekom, klappt es. Ebenso klappt es am Windows Client. Nur hier auf der Linuxkiste geht es nicht. Die Schafft halt nichtmal 100Mbit… zwischen 20-40mbit etwa im LAN, darum auch kein volles VDSL)

    [code]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[/code]

    @Drago
    Woher hast du Version 2.3? Mein Kernel 2.6.26 hat nur Version 2.2!

  9. Drago

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    [quote=“ConiKost, post: 16744″]
    […]
    @Drago
    Woher hast du Version 2.3? Mein Kernel 2.6.26 hat nur Version 2.2![/QUOTE]
    Kernel v2.6.27-RC8 😉

  10. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Alles klar 😉 Hab ich jetzt auch mal probiert, aber geholfen hat es nicht…

  11. Drago

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Hast du zufällig auch Windows installiert? Du könntest es ja mal so versuchen… dann weißt du höchstwahrscheinlich ob es ein Defekt ist…

  12. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    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?

  13. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Ich habe heute mal Debian Lenny installiert. Siehe da und staune 🙂 Debian hat volle Performance. Keine Probleme mehr…
    Es liegt nicht am Kernel. Ich habe testweise Debian mit meinem Gentoo Kernel gestartet und es hat immer noch gut funktioniert unter Debian.

    Was kann das also sein? Wo ist das Problem.

  14. Drago

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Sehr merkwürdig das Ganze… Es kann aber dennoch nicht sein, dass ein Programm dafür verantwortlich ist. Das muss was mit dem Kernel zu tun haben… oder an einer Konfiguration eines Kernel-Moduls.

    Ah… eine Idee hätte ich noch: iptables oder irgendeine Firewall aktiv?

  15. ConiKost

    [b]AW: RTL8169 – Performance sehr langsam (~2-4 MB/s)[/b]

    Ja, ich habe iptables im Einsatz. Ist aber eigentlich Recht einfach:

    [code]#!/bin/bash

    # PPP
    PPP_IF=“ppp0″

    # Lokal
    LO_IF=“lo“

    # LAN & WLAN
    LAN_IF=“eth1″
    WLAN_IF=“ath0″

    # Clients
    AMD64=“192.168.0.2″

    # IP-Bereiche
    LAN_IP=“192.168.0.0/24″
    WLAN_IP=“192.168.1.0/24″

    # IPTV
    IPTV1=“193.158.35.0/24″
    IPTV2=“217.0.119.0/24″
    IPTV3=“224.0.0.0/4″
    IPTV4=“239.35.0.0/16″

    # IPTables
    IPTABLES=“/sbin/iptables“

    # Vorhandene Regeln löschen
    $IPTABLES -F
    $IPTABLES -t nat -F

    # Standardverhalten
    $IPTABLES -P OUTPUT ACCEPT
    $IPTABLES -P INPUT DROP
    $IPTABLES -P FORWARD DROP

    # INPUT
    $IPTABLES -A INPUT -i $LO_IF -j ACCEPT
    $IPTABLES -A INPUT -i $LAN_IF -j ACCEPT
    $IPTABLES -A INPUT -i $WLAN_IF -j ACCEPT
    $IPTABLES -A INPUT -i $PPP_IF -m state –state ESTABLISHED,RELATED -j ACCEPT

    # INPUT – IPTV
    $IPTABLES -I INPUT -d $IPTV3 -j ACCEPT

    # FORWARD
    $IPTABLES -A FORWARD -i $LO_IF -j ACCEPT
    $IPTABLES -A FORWARD -i $LAN_IF -j ACCEPT
    $IPTABLES -A FORWARD -i $WLAN_IF -j ACCEPT
    $IPTABLES -A FORWARD -i $PPP_IF -m state –state NEW,ESTABLISHED,RELATED -j ACCEPT

    # FORWARD – IPTV
    $IPTABLES -I FORWARD -s $IPTV1 -d $IPTV3 -j ACCEPT
    $IPTABLES -I FORWARD -s $IPTV2 -d $IPTV3 -j ACCEPT
    $IPTABLES -I FORWARD -s $IPTV4 -d $IPTV3 -j ACCEPT
    $IPTABLES -I FORWARD -d $IPTV3 -j ACCEPT

    # POSTROUTING
    $IPTABLES -t nat -A POSTROUTING -o $PPP_IF -s $LAN_IP -j MASQUERADE
    $IPTABLES -t nat -A POSTROUTING -o $PPP_IF -s $WLAN_IP -j MASQUERADE

    # Apache
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 80 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 443 -j ACCEPT

    # Dovecot
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 110 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 143 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 993 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 995 -j ACCEPT

    # MLDonkey
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 4080 -j ACCEPT

    # Openfire
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 3478:3479 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 5222 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 5223 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 5229 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 5269 -j ACCEPT
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 7777 -j ACCEPT

    # OpenSSH
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 1337 -j ACCEPT

    # Postfix
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 25 -j ACCEPT

    # Pure-FTPD
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 1338 -j ACCEPT

    # OIdentd
    $IPTABLES -A INPUT -p tcp -i $PPP_IF –dport 113 -j ACCEPT
    $IPTABLES -A INPUT -p udp -i $PPP_IF –dport 113 -j ACCEPT

    # AMD64
    $IPTABLES -t nat -A PREROUTING -p tcp –dport 23451 -i $PPP_IF -j DNAT –to $AMD64
    $IPTABLES -t nat -A PREROUTING -p udp –dport 26235 -i $PPP_IF -j DNAT –to $AMD64
    [/code]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert