MLDonkey auf dem Fli4l SINNVOLL einsetzen.

Das "SINNVOLL" in der Überschrift ist nicht ohne Grund SO betont geschrieben:

Meine Tests mit einem iP233, 64MB und 20GB waren nicht unbedingt von Erfolg gekrönt. Das nach dem Start freie RAM von 35 MB reichte dem Esel nur ca. 15 Minuten, danach begann das System derart zu swappen, dass gar kein Traffic mehr über die Leitung ging. Es hat meines Erachtens keinen Sinn, mit einem solchen Rechner ein Programm in Betrieb nehmen zu wollen, das für aktuelle Hi-Power-Maschinen programmiert wurde!

Also - "Butter bei die Fisch":

Nachdem ich einiges an der Hardware-Schraube gedreht habe, läuft mein Esel (MLDonkey) jetzt zu meiner Zufriedenheit. Um anderen Interessierten / Fli4l-Usern das Leben etwas zu erleichtern, möchte ich meine Erfahrungen schildern bzw. meine aktuelle Konfig zur Verfügung stellen.

Grundvoraussetzungen:


Die einzelnen Schritte grob umrissen:

1. Die Installation von Fli4l möge man der Onlinehilfe entnehmen :-)

Tip: DNS Dienst auf NO (der hat wegen des MLDonkey eh keine Chance), dafür in den Konfigs der Clients manuell den DNS des Providers eintragen (bei t-online z.B. 217.5.100.1, bei anderen Anbietern deren DNS-Server eintragen).

2. Tip zur Partitionierung:

 |-----|-------|-------|-----------------------------------------------|
Boot 128MB ext2fs ext2fs
(DOS) SWAP (opts) Platz für MLDonkey und anderes...

Ergänzung: 192 MB oder sogar 256MB sind derart ausreichend, dass der Router nicht mehr in die Verlegenheit kommt, swappen zu müssen, aber was wäre, wenn ein Speicher-Modul entfernt werden muss? Dann ist es immer besser, doch noch eine gemountete SWAP-Partition in der Hinterhand zu haben, besonders wichtig bei großen Festplatten. Außerdem kann man bei einer HD ab 20 GB ohne Zweifel auf 128 MB verzichten.

3. Quality of Service (QoS)

QoS installieren, denn MLDonkey nimmt sich sonst die gesamte Bandbreite.

In der folgenden QoS Konfig erhalten ALLE Dienst, die auf dem fli4l laufen, max 80 kbit/s, also ca. 12,5 kbyte/s Upstream, und FAST volle Bandbreite Down (640 kbit/s), solange kein anderer Rechner im Netz Traffic anfordert.

MLDonkey kann zwar in seiner Konfig eingeschränkt werden, was Up/Down angeht, jedoch sind die Auswirkungen nicht immer wie gewünscht. Mit QoS geht das sauberer und genauer.

Ergänzung:
Da die Frage bereits öfters gestellt wurde: MLDonkey kann seinen eigenen Traffic begrenzen, das ist richtig, aber nur statisch! Beispiel: MLdonkey sendet von sich aus mit max. 12 kB/s. Wird jetzt von einem internen Client ein Upload gestartet, kann dieser nur die verbleibende Bandbreite (ca. 4 kB/s) in Anspruch nehmen. Die vorgestellte Konfig mit QoS setzt hier an: MLDonkey beschränkt sich nicht selbst, sondern arbeitet in der Standard-Klasse und erhält die definierte Bandbreite. Ein Upload von einem internen Rechner schafft es, den Upload von MLDonkey zu ca. 80-85% wegzudrücken, das Ergebnis könnte man fast als Bandbreite-auf-Anforderung nennen (on demand). Ebenso haben ACK-Pakete durch die Klasse 1 und durch die immer verbleibende Bandbreite gute Chancen, bevorrechtigt behandelt zu werden, was den Surfbetrieb vom internen Rechner aus gewährleistet.

meine QoS.TXT
______________schnippel kante______________________________

QOS_INTERNET_DEV='ppp0'
QOS_INTERNET_BAND_DOWN='768kbit'
QOS_INTERNET_BAND_UP='128kbit'
QOS_INTERNET_DEFAULT_DOWN='4'
QOS_INTERNET_DEFAULT_UP='2'
QOS_LOCALNET_DEV='eth0'
QOS_LOCALNET_BAND='100Mbit'

QOS_CLASS_N='4'

QOS_CLASS_1_PARENT='0'            # upload LAN
QOS_CLASS_1_MINBANDWIDTH='127kbit'
QOS_CLASS_1_MAXBANDWIDTH='128kbit'
QOS_CLASS_1_DIRECTION='up'
QOS_CLASS_1_PRIO=''

QOS_CLASS_2_PARENT='0'            # upload mldonkey@router
QOS_CLASS_2_MINBANDWIDTH='1kbit'
QOS_CLASS_2_MAXBANDWIDTH='80kbit'
QOS_CLASS_2_DIRECTION='up'
QOS_CLASS_2_PRIO=''

QOS_CLASS_3_PARENT='0'            # download LAN
QOS_CLASS_3_MINBANDWIDTH='640kbit'
QOS_CLASS_3_MAXBANDWIDTH='768kbit'
QOS_CLASS_3_DIRECTION='down'
QOS_CLASS_3_PRIO=''

QOS_CLASS_4_PARENT='0'            # download mldonkey@router
QOS_CLASS_4_MINBANDWIDTH='128kbit'
QOS_CLASS_4_MAXBANDWIDTH='768kbit'
QOS_CLASS_4_DIRECTION='down'
QOS_CLASS_4_PRIO=''

QOS_FILTER_N='3'

QOS_FILTER_1_CLASS='1'
QOS_FILTER_1_IP=''
QOS_FILTER_1_PORT=''
QOS_FILTER_1_TYPE=''
QOS_FILTER_1_OPTION='ACK'

QOS_FILTER_2_CLASS='1'           # upload klasse 1 (unbegrenzt)
QOS_FILTER_2_IP='192.168.0.0/22' # für 192.168.0.x, 1.x, 2.x und 3.x
QOS_FILTER_2_PORT=''
QOS_FILTER_2_TYPE=''
QOS_FILTER_2_OPTION=''

QOS_FILTER_3_CLASS='3'           # download klasse 3 (unbegrenzt)
QOS_FILTER_3_IP='192.168.0.0/22' # für 192.168.0.x, 1.x, 2.x und 3.x
QOS_FILTER_3_PORT=''
QOS_FILTER_3_TYPE=''
QOS_FILTER_3_OPTION=''

______________schnippel kante______________________________

Ergänzung: Die in den Filtern 2 und 3 angegebene Netzwerkmaske umfasst alle internen Clients von 192.168.0.1 bis 192.168.3.254, es ist also nur in seltenen Fällen erforderlich, an der Filtermaske etwas zu ändern!

4. MLDonkeyD

Das MLDonkey OPT gem. Anleitung installieren. Eine aktuelle Pango-Version gips bei www.marcooo.de (einfach nach MLDonkey suchen)

Vorteile der Pango-Version:
max_upload_slots lässt sich auf 5 einstellen (sonst Minimum 10)
div. Bugfixes, diverse Features

5. TELNET und FTP

Die Verfügbarkeit von Telnet und ftpd ist von Vorteil, z.b. zwecks Eingabe an der Konsole bzw. für den Dateitransfer vom/zum Windowsrechner, also OPT_Inet installieren.
Wer sich eine bessere Konsole wünscht, installiert noch Opt_bash :-)

6. Die Libraries

Die Installation des LIB-Paketes ist recht einfach und braucht nicht erläutert zu werden. Einzige Schwierigkeitkeit könnte die bereits erwähnte libz.so.1 darstellen. Ich habe einfach die von meinem Linuxserver (Suse8) rüberkopiert. Evtl. gips die auch online irgendwo (einfach mal GOOGLE fragen).

7. Nach erstmaligem Start des MLDonkey in der MLDonkeyd.txt den Wert MLDONKEYD_USE_OLD_INI_FILES auf 'YES' ändern, damit die INI's nach dem Neustart nicht ständig neu generiert bzw. kopiert werden. Danach den mldonkeyd durch die Pango Version ersetzen (die Pango-Version heißt nur mldonkey ohne 'd', also umbenennen). Der Start ohne Fehlermeldungen (an der Konsole oder per Telnet) verspricht gutes. Ob er wirklich noch läuft, erfährt man mit dem Befehl 'ps' an der Konsole.

8. Fernsteuerung vom Windows-PC aus:

MLDonkeyWatch ist zwar systemlastig (bei ca. 60 Downloads 100% Systemlast auf meinem PIII 1,1GHz), aber dafür genial. Support etc. gibts hier http://mitglied.lycos.de/esel2ksearch/main.shtml und im zugehörigen Forum.

9. Feintuning des MLDonkey:

______________schnippel kante______________________________

Mit den folgenden Einstellungen sendet mein MLD mit 12,5 kb/s und kann mit fast Fullspeed (bis zu 74 kB/s) downloaden (Dank QoS), ohne die anderen Rechner im Netz zu beeinträchtigen:

# Verbinde beim Start nur zu Severn, die eine Wertigkeit von x haben
initial_score = 8

# Reconnect-Zeit zu Sorces min 8 Minuten, max 1 Stunde
min_reask_delay = 480.
max_reask_delay = 3600.

# keine Up-/Down Begrenzung des Traffic, macht bei uns QoS
max_hard_upload_rate = 0
max_hard_download_rate = 0

# Speichern der Download.ini alle 12 Min.
save_options_delay = 720.

# _EIN_ Server reicht, wir connecten nur zu Servern, die uns eine Hi-ID geben
max_connected_servers = 1
force_high_id = true

# Anzahl udp Pakete pro Sendezyklus
max_udp_sends = 15

# Server, die länger als 1 Tag nicht erreichbar waren, fliegen aus der Liste
max_server_age = 1

# Spart RAM
use_file_history = false
save_file_history = false

# Nicht alle Verbindungen zu Sourcen sind ständig offen, die Standard "928" sind zu viele
max_opened_connections = 600

# Arbeitsspeicherdefragmentierung, wenn nur noch 25% frei
compaction_overhead = 25

# der "Lieblingsserver" hat mindestens 900 connected Users
master_server_min_users = 900

# Port-Hopper müllen die Liste voll, daher lieber manuell bei Bedarf, ne gute Liste gibts
# hier http://ocbmaurice.dyndns.org/pl/slist.pl/server.met?download
update_server_list = false

# Sourcen sind selten älter als 1 Tag (dyn. IPs)
max_source_age = 1

# max. aufgebaute Verbindungen zu Sourcen pro Sek.
max_clients_per_second = 10

# Weniger Uploadslots, dafür mehr kb/s für den einzelnen
max_upload_slots = 5
   # funktioniert nur bei der Pango-Version

# Max Quellen pro file, 600 reicht dicke
max_sources_per_file = 600

# automatische Verringung "aus"
auto_max_sources_per_file = false

# alle Clients im eigenen Netz dürfen mit MLD kommunizieren
allowed_ips = 192.168.255.255

# Queue-Hüpfer (zu häufige Anfragen/Reconnects) werden banned
ban_queue_jumpers = true
# für x Stunden
ban_period = 3.

# wir warten 4 Stunden in der Queue der Quelle, vielleicht kommt irgendwann mal was :-)
queued_timeout = 14400.

# Uploadversuch nach 20 Min. abbrechen, wenn keine Reaktion vom gelinkten User
upload_timeout = 1200.

# gemischter Download der Parts, nicht linear
random_order_download = true

# Mehrere Quellen für ein Part zulassen
sources_per_chunk = 5

# Min. 200 Server in der Liste lassen
min_left_servers = 200

# neues experimentelle Uploadsystem verwenden
new_upload_system = true

# Emule User nicht reglementieren (also 100% zulassen)
max_emule_slots = 100

______________schnippel kante______________________________

10. Verwendung eines neueren hdparm

Ich habe das bei mir eingesetzte "online" besorgt (Google befragen) und gegen das alte ersetzt.
Achtung: Die meisten Versionen sind Shared-Lib, sie benötigen also unbedingt das GLIBC-Paket (siehe oben).
In dieser Kombination ist es dann möglich, den UDMA2-Modus moderner Platten zu aktivieren, z.B. so: "hdparm -d 1 -X66 /dev/hda"
Es empfiehlt sich, diese Einstellung erst manuell an der Konsole zu testen und abzuwarten, ob typische Fehler auftreten ('status = 0x51 { DriveReady SeekComplete Error }' 'error = 0x04 { DriveStatusError }').
Wenn alles bestens läuft, kann man sich daran wagen, den UDMA2-Modus fest einzunageln:
Man suche in opt/etc/rc.d nach der Datei rc300.hdtune, dann mit dem Editor (Notepad) öffnen und nach folgendem Abschnitt suchen
----schnipp----
if [ "$dma_access" = yes ]
then
    /sbin/hdparm -d 1 /dev/$device
fi
----schnipp----
einfach das -X66 mit dazu scheiben (das X muss GROSZ sein!)

Warnung:Erst manuell prüfen, ob Deine Platte/Mainboard-Kombi das abkann, wenns Fehler hagelt: Finger weg!

Ergänzung: Je größer die Datenpartition, desto länger benötigt Linux, die Partition zu mounten (ins System einzubinden). Es ist völlig normal, dass der Bootvorgang zu stocken scheint und nach (was-weiß-ich) 60-90 Sekunden oder mehr erst fortsetzt.

Anmerkung: Wenn ich bei meinem Mainboard (VIA-Chipsatz) den UDMA-Modus im BIOS aktiviere, hagelt es Fehlermeldungen, daher habe ich den UDMA auf DISABLED gestellt, sodass die Platte erstmal im PIO-Modus angestartet wird. Bei der nachträglichen Aktivierung des UDMA2 (UtraDMA33) mittels hdparm gibt es keine Probleme.


Die geschilderten Erfahrungen habe ich zu Zeiten von T-DSL/T-online gemacht. Wie sich die Konfig bei anderen DSL-Anbietern verhält, kann ich noch nicht sagen. Die t-*nline AG hat nach Ankündigung des Anbieterwechsels zu ARCOR leider vorzeitig meine dsl-Flat gekündigt, ich bin also nun nicht mehr in der Lage, spezielle Konfigs zu testen. Möglicherweise gibts nach dem Wechsel zur rot-blauen Konkurrenz ein Update.


Viel Erfolg wünscht

     -==[ Schubsi ]==- 1hx0@gmx.de

Letzte Aktualisierung: 16. Februar 2003

Klicken Sie hier, um die Seite auszudrucken.