1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

Why does transmission not saturate my connection?

Discussion in 'Tomato Firmware' started by blackjackel, Dec 21, 2013.

  1. blackjackel

    blackjackel LI Guru Member

    Transmission is extremely slow compared to utorrent running on a PC, for no reason ( I list the possibilitiesn below). My connection is 20 Mbps, when I run torrents on Utorrent on my computer I get a saturated connection, speeds hit 2MBPS easily, but when I run transmission on tomatousb (shibby firmware, v 115) , the max I can get is an average of 600 kB/s. By the way, I am running it on an RT-N66U which has a 600mhz processor and I'm running NOTHING ELSE on it, meaning no wifi, no vpn, no general routing, nothing aside from transmission.

    The highest speed I've ever been able to get is 1MBPS (half my connection speed) and that's when I run a single extremely popular torrent.

    I'll go over all the possible reasons why Transmission won't saturate my connection:

    - I took a look at both the processor and ram, the cpu load hovers around 0.62 / 0.50 / 0.27 and the free RAM is always above 200mhz: Meaning it's not becuase of lack of CPU speed or RAM

    - I connected the external USB drive and downloaded to it using utorrent and it saturated my connection: Meaning it's not because of usb 2.0

    - I set QOS to limit my upload 125 kb/s (out of the full 170 kb/s), i also turned off qos and used the upload limit feature on transmission, connection still not saturated: meaning it's not because my upload speed is being saturated.

    - I tried both port forwarding and without port forwarding and the speeds remain the same either way: meaning it has nothing to do with port forwarding.

    I cant think of ANY other reason why transmission won't go faster than 600 kB/s for multiple torrents or 1MBPS for a single extremely popular torrent.

    If you think of anything please let me know!
  2. leandroong

    leandroong Addicted to LI Member

    Look at your peers settings per torrent and global peers. Set them as high as you can and you will see if it can matches utorrent.
  3. blackjackel

    blackjackel LI Guru Member

    This is a good suggestion! They are both set to 1000 global 100 per torrent. So this isn't the reason either :/
  4. leandroong

    leandroong Addicted to LI Member

    1. That should be more than enough to overheat your router. How to test, try downloading ubuntu iso from their site using torrent.
    2. If you really want fast downloader, use Aria2, this can accept multiple source download and combine them. You can be getting data from http, https, ftp, torrent, metalink at the same time.
  5. blackjackel

    blackjackel LI Guru Member

    This can't be overheating my router because the processor isn't being utilized enough to overheat the router, the cpu load hovers around .75 and will spike up to 1 occassionally.
  6. lancethepants

    lancethepants Network Guru Member

    This is just a limitation of the cpu on these devices. I have a 50 Megabit connection, so around ~7MBps. I easy max out my connection with Usenet or Torrenting on a PC. The router for either only maxes maybe at ~3MBps, with SABNzbd or aria2.
  7. leandroong

    leandroong Addicted to LI Member

    Would you like my self compiled nightly build entware transmission optware?
  8. blackjackel

    blackjackel LI Guru Member

    I would LOVE to hit 3MBps on my router, which router are you using? I'm on an n66u, which runs at 600mhz, so I don't understand how you can be hitting 3MBps while I struggle with getting over 750kbps.....

    also, how is it a cpu limitation when the cpu hovers at (copypasted):
    CPU Load (1 / 5 / 15 mins)0.58 / 0.52 / 0.52

    Is there some better way to determine if the CPU is being taxed than just looking at the cpu load in the tomatousb status -> overview pane?

    Well, I'm currently running the built-in transmission in shibby's latest stable release, which is 2.82, I haven't installed entware to run it.... would running it off entware on a USB disk increase transmission speed somehow? Do you think that running a later version of transmission would dramatically increase the speed?
  9. leandroong

    leandroong Addicted to LI Member

    Are you kidding, 3MBps, my trasmission or Aria2 easily saturated that with just few peers, 10 per torrent, 25 global). Want to try my compiled entware optware to see any difference?

    router: ZTE ZXV10 H618B, cheap router (240Mhz only)
  10. lancethepants

    lancethepants Network Guru Member

    Just to make sure we're on the same page 3MBps is 3 megabytes per second, not megabits.
    How fast is your internet that you say you're saturating?

    This is using my own compiled binary of aria2 using the entware toolchain, and running on the router itself. I'll do some more testing when I get some time to double check this.
    I've never run transmission on the router though I've also compiled its binaries. I can give it a try sometime.
  11. lancethepants

    lancethepants Network Guru Member

    I am using the RT-N16. Where are your binaries leandroong, and I will test them out.
  12. leandroong

    leandroong Addicted to LI Member

  13. lancethepants

    lancethepants Network Guru Member

    @leandroong Thanks, if I have some spare time during the holidays soon I'll take a look.

    How have you formatted your hard-drive. Mine's formatted as ext3, which will give around ~6-7MB/s, when using samba to transfer. NTFS will be slower (unless using the "paragon" driver or something, not sure if shibby has put that in his firmware, or what the status is on that). That could be one thing to consider also. From what I remember, the original NTFS driver will be slower, and could be a possible bottle neck.

    Sometime here I'll give both my transmission (static) binary and leeadroong entware ipks a test too, and see how they fare.

    I just tested downloading a debian distro iso. On my comp I saturate my bandwidth at almost ~7MB/s. On my router using aria2 I saw as high as 3.4MB/s, but averaged around 3.2MB/s. If you want, you to try out my aria2 binary and see if you can torrent any faster. If not, I would guess something else (like hd formatting maybe) to be the issue. Your router theoretically should be handle better than mine even. I have a slower router, but faster internet, but can still saturate what you're speed would be.

  14. leandroong

    leandroong Addicted to LI Member

    i'm using ext3 format also. Aria2 download can really download very fast, for drama episode, using http, I can specify how many simultaneous segments to download for a given file.
  15. blackjackel

    blackjackel LI Guru Member

    Yes, I think I would like to try this, I have compiled a linux kernel and ran it in the past, but I haven'tn had experience yet compiling and running executables on a linux router, but I'm sure I can find some instructions online on how to do it. Link me to the binaries and I'll try them...

    My internet connection is 20Mbps, I can saturate this through utorrent on a pc.
    I max out on the router at 700KB/s which is 5.46Mbps and .68MBPS

    I started off on NTFS, as of about a month ago, during diagnosing why this is so slow, I converted the whole drive from NTFS to ext3 by unloading all files, formatting, then reloading all files back on. So the drive is currently formatted on ext3.

    Yeah, you're running faster than I for some reason, I hope to figure this out, have you tried running this specifically on shibby's build? maybe there's some sort of bug in that specific firmware build that we just found? I'm going to keep testing things like your binary till I can get down to the bottom of this.

    I will post back as soon as I have tried your or leandroong's builds and see if there's a difference.
  16. blackjackel

    blackjackel LI Guru Member

    I managed to download and install aria2c via entware, and i managed to get aria2c Remote working on windows to administrate it, and http links will download however I couldn't for the life of me get it to work for magnet links or torrent files... I'm afraid I'm just not advanced enough to figure out why stuff isn't working. I tried enabling dht and copying my dht.dat file over from utorrent but this did not help.

    I'd be willing to grant one of you guys remote access if you're up for it one day. This of course would require an exhcange of real-time contact info such as instant messenger or phone number for texting...etc.

    OH, and I almost forgot, I compiled and ran transmission on entware and directed shibby's binary file directory to it, ran it off there.... no change in speed.
  17. leandroong

    leandroong Addicted to LI Member

    I just tested my aria2c for torrent and magnet link, found no issue.
  18. leandroong

    leandroong Addicted to LI Member

    pls. tried my provided entware optware above. Telnet, remove and install mine and see for effect.
  19. blackjackel

    blackjackel LI Guru Member

    Where is the link? the only link you provided was to transmission compiles
  20. leandroong

    leandroong Addicted to LI Member

    that is correct, you just need to replace ur installed entware transmission by removing it manually first. Then install mine manually.
    1. download my compiled nightly build, 4 files
    2. winscp, copy 4 downloaded files to /tmp/home/root
    3. remove installed entware transmission first
    - "opkg remove transmission-remote"
    - "opkg remove transmission-web"
    - "opkg remove transmission-cli"
    - "opkg remove transmission-daemon"
    4. install mine
    - "cd /tmp/home/root"
    - "opkg install transmission-daemon_2.82+_14216-1_entware.ipk"
    - "opkg install transmission-web_2.82+_14216-1_entware.ipk"
    - "opkg install transmission-cli_2.82+_14216-1_entware.ipk"
    - "opkg install transmission-remote_2.82+_14216-1_entware.ipk"
  21. blackjackel

    blackjackel LI Guru Member

    I am currently running aria 2 through that modified shibby firmware i was linked to... I'll test the speeds and report back
    Last edited: Dec 24, 2013
  22. lancethepants

    lancethepants Network Guru Member

    I've now tested running transmission on my router. I had some interesting results.

    I didn't really expect any difference between my transmission and leandroong's, and though that they would perform the same.
    My transmission holds around 2.5 - 3 MB/s
    Leandroong's stayed a bit below 2 MB/s

    I tested with transmission-daemon in both cases.

    I also tried transmission-cli, and mine performed the same as above.
    Leandroong's transmission-cli takes forever to startup, and I ran out of patience before it even got to downloading anything.

    Not sure why they would perform so different, but these are the difference in their compilation.

    Both use the entware toolchain
    I compiled all my libraries from scratch, and made a static transmission binary. No external dependencies
    Leandroong uses entware's provided libraries.

    I didn't compile librtmp in my transmission. Leandroong's does (for streaming or something?).

    I didn't compile libminiupnpc.
    Leandroong's ipk seems to have libminiupnpc as a dependency and installs it, but the binary doesn't show that it is linked to it.

    I'm using 2.82 release version.
    Leandroong is using the latest 2.82+ (unreleased repo version)

    Transmission with either binaries seems to vary quite a bit on download speed. It's always jumping all over the place.

    aria2 seems to a hold a much more stable and fast connections. For me, consistantly at 3.2 MB/s or better.
    Overall I think aria2 is a better program for downloading torrent on routers.
  23. lancethepants

    lancethepants Network Guru Member

    Transmission seems to just peg the cpu. Constantly 100% and the cli or web interface aren't very responsive.

    With aria2, the cpu hovers at 97%, but using the aria2 web client, it is very responsive, and downloads much faster and way more consistant.

    I've never run shibby's built in transmission, so can't comment on how well his runs, or what his config options are.
  24. leandroong

    leandroong Addicted to LI Member

    Last edited: Dec 24, 2013
  25. lancethepants

    lancethepants Network Guru Member

    Your post prompted me to test again.
    This time I installed shibby tomato on my RT-N16. I used his built in transmission gui, instead of setting it up manually like I did before.


    The above link is the torrent I used to test. It is 3.94 gigs.

    First I downloaded the torrent using my binary. It downloaded in 26 minutes.
    I then ran Leandroong's binary. At 26 minutes it was at 55%
    Shibby's binary. At 26 minutes it was at 73%.
    Entware's binary. At 26 minutes it was at 63%
    Then re-ran my binary. At 26 minutes it was 82%
    Aria downloaded the torrent in 24 minutes.

    My binary : ~2.58 MB/s
    Leandroong binary : ~1.42 MB/s
    Shibby's binary : ~ 1.88 MB/s
    Entware binary : ~ 1.63 MB/s
    My binary : ~ 2.12 MB/s
    Aria2 : ~ 2.8 MB/s

    I'm on Comcast, so I think my internet is getting slower the later that I'm am testing. People are getting home, turning on netflix and using the internet in general.
    Despite that possibility, my binary still seems to be the fastest of any transmission binary I've tested.
    Aria2, despite the fact that the internet is getting slower, aria2 still kicks transmission's trash. With this particular torrent, I have seen aria2 previously download with a constant rate of 3.2 MB/s.

    Not very scientific, but I stand that my transmission binary is the fastest I've seen so far.
    Also that aria2 is faster at torrenting than transmission.

    I encourage others to test and try to confirm or deny my findings.

    edit: Of course you may need internet that is fast enough to NOT be saturated by the router when it is torrenting, for better accuracy.
    Last edited: Dec 25, 2013
  26. lancethepants

    lancethepants Network Guru Member

    One other note. Leandroong's and the Entware's binary are both dependent on Entware's curl library. Entware has recently updated their binary to version 7.34.0. With this new version, they've made some changes with how IPv6 connections work in conjunction with IPv4.

    I talk about this a little bit here.

    With this new change, if you use the newest version of curl that has had ipv6 enabled, then you may experience a problem. I do not have IPv6 enabled on my home network. Curl and libcurl do not seem to be able to handle this, and when you try to retrieve something, it will do nothing, unless you specifically place '-4' in the argument, to tell it to use ipv4.

    Both Leandroong's and Entware's binaries, fail to retrieve a torrent file from a url for me. I suspect that libcurl is being used for this, and just like the curl binary, other programs using libcurl will have problems when there is no IPv6 present.

    I would suggest to the entware repo maintainer to roll back to version 7.33.0, or to disable IPv6 support in the current version. Transmission and possibly many other programs else will have issues with libcurl where IPv6 is not present on the network.
    Last edited: Dec 25, 2013
  27. lancethepants

    lancethepants Network Guru Member

    Real lesson is... If you're serious about torrenting, use a PC, or something more powerful.
  28. leandroong

    leandroong Addicted to LI Member

    I'm 100% agreeable that your binary is fastest. My point of argument is bandwidth saturation and that my speed is less than 2mbps. My ISP speed is only 3mbps, from the video, you can see that I have attain maximum transfer of 569.06KB/s, which is 4.55mbps. This means that I have saturated my 3mbps and ISP is throttling my speed.
    BTW, I like the comparison you made to determine the best binary.
  29. leandroong

    leandroong Addicted to LI Member

    Lastly, my CPU load usage is less than 40% (500Mhz). Sad to say that I can't test, true router capability due to limited bandwidth.
    My binary is entware binary also, just use nightly build source code.
  30. leandroong

    leandroong Addicted to LI Member

    Entware repo is still using curl version 7.33.0, so no problem.
  31. koitsu

    koitsu Network Guru Member

    If you haven't done opkg update (note I said update, not upgrade) recently then you won't see what's been changed upstream on the official pkg server (http://wl500g-repo.googlecode.com/svn/ipkg/openwrt). Proof:

    root@gw:/tmp/home/root# opkg update
    Downloading http://wl500g-repo.googlecode.com/svn/ipkg/openwrt/Packages.gz.
    Updated list of available packages in /opt/var/opkg-lists/openwrt.
    root@gw:/tmp/home/root# opkg list | grep ^curl
    curl - 7.34.0-1 - A client-side URL transfer utility
    curlftpfs - 0.9.2-2 - CurlFtpFS is a filesystem for accessing FTP hosts based on FUSE and libcurl.
    As for complaints about IPvX prioritisation (whether 6 should be tried first then fallback to 4, or vice-versa): this has been a major problem for most software, not just libcurl. It's a combination of "what the kernel wants" vs. "what the application wants". The entire IPv6 stack "modus operandi" in general is "try IPv6 first, then fall back to IPv4... maybe". It's like this on FreeBSD and other OSes as well -- and when it doesn't behave how the user wants, the user is left crying over spilt milk. This is one of my many reasons to avoid IPv6 at this present time (no I will not discuss them or get into a debate about it). You can Google for things like "ipv6 ipv4 prioritisation" and you'll find confirmation of my statements.

    TL;DR -- If you use IPv6, get used to making sure there's a way in every single program you use that relies on networking sockets to force IPv4 (ex. -4 flag). If there isn't, you may be in for disappointment.
  32. lancethepants

    lancethepants Network Guru Member

    You may need to do an "opkg update" and "opkg upgrade" to see the new package.

    Edit: ah, beat me to it.
  33. leandroong

    leandroong Addicted to LI Member

    In my entware compilation, i'm still using old 7.33, but when I tested it, entware optware repo is already upgraded to 7.34. Don't know which one is being use.
  34. lancethepants

    lancethepants Network Guru Member

    Entware's and your binary will dynamically link to whichever latest library you router has. They should be binary compatible as it should be a minor revision change.
  35. koitsu

    koitsu Network Guru Member

    Use ldd (from Entware -- Busybox used to have its own pile of dung which was quite a laugh) and you can see what your binary links to library-wise (likely libcurl.so.X). You'll then need to trace the symlinks (ex. /opt/lib/libcurl.so.X to /opt/lib/libcurl.so.X.Y.Z) and compare versions. The ABI is supposed to be compatible unless they say so in appropriate changelogs or if the minor (Y.Z) or major (X) number changes.

    Entware binaries are intelligently generated used -Wl,-R/opt/lib or possibly just -rpath /opt/lib to set the ELF RPATH header to /opt/lib, to ensure the prioritisation of library search path (so that a library in /opt/lib gets picked before the one in /lib). You can look at the RPATH header by installing objdump (from Entware) and using objdump -x {binary} | grep RPATH.

    root@gw:/tmp/home/root# opkg list-installed | grep curl
    curl - 7.34.0-1
    libcurl - 7.34.0-1
    root@gw:/tmp/home/root# ldd /opt/bin/curl
      libcurl.so.4 => /opt/lib/libcurl.so.4 (0x2aac0000)
      librtmp.so.0 => /opt/lib/librtmp.so.0 (0x2ab1d000)
      libssl.so.1.0.0 => /opt/lib/libssl.so.1.0.0 (0x2ab47000)
      libcrypto.so.1.0.0 => /opt/lib/libcrypto.so.1.0.0 (0x2abaa000)
      libz.so.1 => /opt/lib/libz.so.1 (0x2ad13000)
      libgcc_s.so.1 => /opt/lib/libgcc_s.so.1 (0x2ad37000)
      libc.so.0 => /opt/lib/libc.so.0 (0x2ad58000)
      libdl.so.0 => /opt/lib/libdl.so.0 (0x2ae08000)
      ld-uClibc.so.0 => /opt/lib/ld-uClibc.so.0 (0x2aaa8000)
    root@gw:/tmp/home/root# ls -l /opt/lib/libcurl*
    lrwxrwxrwx  1 root  root  16 Dec 23 16:53 /opt/lib/libcurl.so.4 -> libcurl.so.4.3.0
    -rwxr-xr-x  1 root  root  334772 Dec 19 13:24 /opt/lib/libcurl.so.4.3.0
    root@gw:/tmp/home/root# objdump -x /opt/bin/curl | grep RPATH
      RPATH  /opt/lib
  36. blackjackel

    blackjackel LI Guru Member

    Ok, I'm back with some updates and major changes.

    The old router I was using was N66u, which had a 600mhz processor, the other router I was using was an E4200, which has i believe something like 500mhz, the problem was I had an Openvpn server running on the E4200 (which wasn't supposed to be) which was saturating the CPU on that router, therefore slowing the torrent connections on my bt router.

    So I bought a AC56u, which is a DUAL core 800mhz ARM processor, I am currently running ASUSWRT on it and am now running BOTH openvpn server AND transmission on the same router.

    I am back to square 1, which is: My connection is NOT being saturated AND the processor CPU's aren't being saturated, both processors hover around 80% idle and both of them spike down to 0% every few seconds but almost never at the same time.
  37. blackjackel

    blackjackel LI Guru Member

    More updates:

    With transmission, I tested downloading a single file vs multiple files, I tested with an extremely popular torrent:

    One Single extremely popular torrent (running by itself) makes the average download rate around 1MB/s (which is damn good).

    If I add ANY other torrent with it, whether it's popular or not downgrades the average speed to 500kbps, you can clearly see the speed nosedive on the "real-time" speed graph...
  38. alecsandes

    alecsandes Network Newbie Member


    I stumbled on this thread and I have the same issue in 2016, Advanced Tomato 132, Netgear R7000, 500Mbps line, USB 3.0 slot with a 750 GB 7200RPM HDD. I have also IPv6 with prefix delegation.

    On my PC I got on a popular torrent 30MBPS or even more, average was 24MBPS, smth like that.
    On transmission I get max 3 (not sure if MBPS or Mbps, how it is showing in the top right corner)?
    It doesn't matter if there is one torrent or multiple torrents downloading, it stays at the same general speed.

    Did somebody succeeded to reach higher speeds?

    Is aria2 worth a try?

  39. lancethepants

    lancethepants Network Guru Member

    Using aria2 on my R7000 it saturates my 100Mbit connection (~13MBps).
    I doubt it could saturate the entire 500Mbit, but I can't test that.
    It certainly would be faster than 3MBit.
  40. alecsandes

    alecsandes Network Newbie Member

    Hello Lance,

    Thank you for your reply!
    How did you install aria2? which tutorial did you use?
    I am not so proficient in programming, coding, linux, although I can understand the code, in general, I tried to install once transmission through optware and I was close to hammer the router after one night ..

    Which kind of router software do you use?
    How a preconfigured GUI for a certain firmware, like Advanced Tomato will work with an addon like aria2?

    Sorry for noob questions but I hope I will get some info which will help me search deeper :)
  41. lancethepants

    lancethepants Network Guru Member

    I use this binary I compiled.

    This is what my aria config looks like

    The firewall rules
    iptables -A INPUT -p tcp --dport 6801 -j ACCEPT
    iptables -A INPUT -p udp --dport 6801 -j ACCEPT
    iptables -A INPUT -p tcp --dport 6881 -j ACCEPT
    iptables -A INPUT -p udp --dport 6881 -j ACCEPT

    Then you can download this project to your desktop PC, open up index.html in your browser, then tell it the IP address of your router on the local network.

Share This Page