Edit 13/01/2010 : Article osolète, se référer à cet article Configuration du client torrent Deluge via l’interface WebUI
Suite de l’article sur la configuration de Deluge, après les configurations basique on va attaquer les configurations qui impactent directement les performances du téléchargement.
Le web est assez peu loquance concernant ces dernières, la règle d’or semble « essayer et vous verrez », en gros cela semble très empirique.
Je vais ici indiquer ma configuration et les quelques liens/pistes qui m’ont permis d’y arriver…
Configuration de la bande passante (Bandwith)
Pour commencer la paramétrage de la bande passant il faut d’abord connaitre les caractéristiques réelles de votre ligne.
Pour cela il existe divers services :
- http://www.speedtest.net/
- http://www.ariase.com/fr/vitesse/test-bande-passante.html
- http://www.journaldunet.com/test-connexion
En ce qui me concerne je suis chez free en degroupage total à 2374 mètres du DSLAM et 34 dB d’affaiblissement.
Voici mes débits (en kbit / s) :
Download | Upload | |
---|---|---|
Speedtest | 6630 | 810 |
Ariase | 6937 | 860 |
JDN | 5692 | 513 |
Je retiendrais 6000 kbits/s soit 750 ko/s en download et 800 kbits/s soit 100 ko/s en upload.
Rques :
- Vous pouvez faire le test plusieurs fois de suite, vous verrez les résultats varient
- Pensez à éteindre la fonction TV de la freebox
- Faite le test après un reboot de la freebox, là aussi les résultats peuvent être surprenant (du simple au double dans mon cas)
- Attention à la conversion kbit – ko, 1 octet = 8 bits
- Attention (bis) nos amis les anglais ne parlent pas de ko (kilo octet) mais de kByte
On pourra ensuite utiliser cet outil pour trouver les différents réglages, il suffit de rentrer son débit en upload et il calcul les paramètres « optimals ».
Rque : la pluparts des paramétres suivants servent à paramétrer libtorrent.
Libtorrent est une bibliothèque open-source écrite en C++ destiné à mettre à disposition des fonctions de téléchargement sur le réseau torrent, cette bibliothèque est utilisée par de nombreux clients torrent (cf. ici) dont Deluge.
Dans la suite j’ai pour certain paramètres Deluge indiqué le nom du paramètre libtorrent correspondant, il vous sera alors possible d’aller sur cette page d’y chercher le paramètre indiqué pour avoir une description plus technique et complète (en anglais)
Global
Rque : sur cette copie d’écran le paramètre que j’utilise ou moment où j’écris ces lignes (16/06/2009), mais je compte bien le changer pour me rapprocher du paramétrage calculé ci-dessous.
Maximum connections
Nombre maximal de connexion ouverte, tous torrent confondu, il est difficile de trouver un règle calcule, la seul trrouvé est celle utilisé dans le calculateur Azureus :
Nombre maximal de connexion = (débit upload (en kbit/s) ^ 0.8) + 50
Dans la limite de 1200 connexions.
Dans mon cas cela donne 260.
Dans la FAQ de Deluge il est conseillé de mettre 200 (quelque soit la caractéristique de la ligne)
Maximum Download Speed
Vitesse maximal de téléchargement, 2 écoles :
- illimité
- 0.9 * débit download (en ko/s)
Maximum Upload Speed
Vitesse maximal d’envoi = débit upload (en ko/s) * 0.8
Soit dans mon cas 80 ko/s
Maximum Upload Slots
Nombre maximal d’emplacement en upload = 1 + (max upload speed / 6)
14 dans mon cas, or si on regarde dans la FAQ Deluge il est conseillé 4 (!)
Maximum half-open connection
Ce paramètre doit absolument être en raccord avec la limitation que Microsoft impose à ses OS (8 pour XP, 4 pour Vista sauf si vous avez patché tcpip.sys).
Pour un OS Linux pas de limitation spécifique.
Limiter volontairement ce paramètre peut permettre de moins pénaliser les autres applications travaillant avec le réseau sur le système et n’aura pour seule conséquence sur Deluge de placer en file d’attente plus de pairs (cf paramètre max_half_open_connections de libtorrent)
Dans mon cas j’ai mis 50 (la FAQ Deluge préconise illimité)
Maximum Connection Attempt Per Second
La FAQ préconise 20, libtorrent utilise 200 comme valeur pour défaut (paramètre libtorrent connection_speed)…
Ignore limit on local network
On peut décocher cette option puisque de toute façon on ne fera pas de download en local.
Rate limit Ip overhead
Paramètre libtorrent rate_limit_ip_overhead.
Mais n’étant pas un spécialiste en réseau il m’est impossible de comprendre qe quoi il retourne…
J’ai donc laissé ce paramétre côché comme pr défaut.
Per torrent
Après la configuration global, on peut réaliser une configuration par torrent.
En effet avec par exemple 100 connexions globales au maximum et 4 torrents en cours on peut imaginer qu’un des torrent prenne les 100 connexions laissant les 3 autres torrents sans aucune connexion.
Il est donc possible d’éviter ce genre de situation avec ces paramètre par torrent.
Dans mon cas cela ne m’importe peu, j’ai donc tout laissé en illimité.
Configuration de Deluge (démon et Co)
Download
Store all torrents in
Emplacement où les fichiers téléchargés sont stockés
Save .torrent files to
Emplacement de sauvegarde des fichiers .torrent
Auto add folder
Répertoire scruté par le démon Deluge à la recherche de fichier .torrent, dès qu’il en trouve un il démarre le téléchargement.
Très utile pour réaliser du téléchargement automatique de série via un flux RSS (cf. ici)
Auto Add enabled
Active l’ajout automatique de torrent via la scrutation du répertoire précedemment défini.
Use compact allocation
Par défaut Deluge alloue tout l’espace nécessaire au fichier à télécharger, avec cette option de côché Deluge alloue l’espace au fur et à mesure du besoin.
Prioritize first and last piece
Téléchargment en priorité du début et de la fin du fichier, permet de regarder le début d’une vidéo alors que le téléchargement n’est pas encore fini.
Cela n’est possible qu’avec des lecteurs vidéo supportant de lire des fichiers incomplets (VLC par exemple).
Cela peut servir à s’assurer de la qualité d’une vidéo avant la fin du téléchargment.
Deamon
Défini le port d’écoute du déamon et si ce dernier est accessible à distance (pour une administration distante avec la redirection de port adéquat – attention à la sécurité)
Queue
Queue new torrent to top
Indique que les torrents nouvellement ajoutés doivent être téléchargés en priorité.
Total active downloading
Nombre de torrents actifs en téléchargement
Total active seeding
Nombre de torrents actifs en seeding
Total active torrent
Nombre torrent actif au total
On pourrait croire que total = downloading + seeding, mais en fait le nombre de torrent maximum rééllement actif est le minimum entre ce qui est paramétré dans total et la somme de downloading + seeding.
exemple :
-
downloading = 3
-
seeding = 2
-
total = 8
On aura effectivement que maximum 5 (3+2) torrent d’actif.
Cf. paramètres libtorrent : active_downloads, active_seeds et active_limit
Share ratio limit, Seed time ratio limit et Seed time limit
Ces paramétres correspondent aux paramètre libtorrent suivant :
-
Share ratio limit = share_ratio_limit
-
Seed time ratio limit = seed_time_ratio_limit
-
Seed time limit = seed_time_limit
Il interviennent dans la façon dont libtorrent gère sa file d’attente (queuing) pour le seed, en gros de ce que j’en comprend si on a plus de torrent terminé (pouvant faire l’objet de seeding) que de torrent autorisé à seeder (paramètre total active seeding), libtorrent se sert de ces paramètres pour determiner les torrents devant seeder.
Je n’ai aucun intérêt à modifier les valeurs par défaut :
-
Share ratio limit = 2
-
Seed time ratio limit = 7
-
Seed time limit = 180
Les 3 paramètres suivants sont propres à Deluge (pas libtorrent), on pourra consulter le code source dans torrent.py.
Stop seeding when ratio reached
Indique qu’il faut arrêter de seeder un torretn quand le ratio paramétré avec « Stop seed ratio » est atteint.
Remove torrent when ratio reached
Indique qu’il faut supprimer le torrent quand le ratio paramétré avec « Stop seed ratio » est atteint.
Stop seed ratio
Ratio upload/download auquel il faut arrêter de seeder (paramètre Stop seeding when ratio reached) ou supprimer le torrent (paramètre Remove torrent when ratio reached)
Valeur par défaut = 2.0 dans mon cas j’ai mis 1.0 (j’arrête de partager dès que j’ai transmis autant que j’ai reçu)
Enabled plugins
Permet d’activer ou non des plugins additionnels.
Par défaut dans Deluge seul 2 plugins sont disponibles Blocklist et Label, l’utilisation de ces plugins fera l’objet d’un autre article.
Remarque :
Pour écrire cet article je me suis plongé dans le code source de Deluge et quelle ne fut pas ma surprise d’y découvrir ce bloc de code :
def _on_send_info(self, key, value): log.debug("Sending anonymous stats..") """sends anonymous stats home""" class Send_Info_Thread(threading.Thread): def __init__(self, config): self.config = config threading.Thread.__init__(self) def run(self): import time now = time.time() # check if we've done this within the last week or never if (now - self.config["info_sent"]) >= (60 * 60 * 24 * 7): import deluge.common from urllib import quote_plus from urllib2 import urlopen import platform try: url = "<a href="http://deluge-torrent.org/stats_get.php?processor">http://deluge-torrent.org/stats_get.php?processor</a>=" + \ platform.machine() + "&python=" + platform.python_version() \ + "&deluge=" + deluge.common.get_version() \ + "&os=" + platform.system() \ + "&plugins=" + quote_plus(self.config["enabled_plugins"]) urlopen(url) except IOError, e: log.debug("Network error while trying to send info: %s", e) else: self.config["info_sent"] = now
Pour ceux qui ne seraient pas du tout à l’aise avec la programmation, ce code envoi des statistiques à Deluge concernant l’OS, la version de python utilisée, le processeur et les plugins utilisés.
Bref rien de très compromettant…
Références / sources :
-
code source du site précédent et plus spécialement le fichier az-calc.js (http://infinite-source.de/az/az-calc.js)
- http://www.addictivetips.com/windows-tips/how-to-speed-up-your-torrents/
- http://forum.transmissionbt.com/viewtopic.php?f=2&t=7527
- http://forums.whirlpool.net.au/forum-replies-archive.cfm/724147.html
- http://dev.deluge-torrent.org/wiki/Faq#WhatbandwidthsettingsshouldIuse
- API libtorrent : http://www.rasterbar.com/products/libtorrent/manual.html
- Code source de Deluge