Author Topic: Torrent client advice  (Read 1231 times)

Offline Freedom Kira

  • Member
  • Posts: 4325
  • Rawr™.
Re: Torrent client advice
« Reply #40 on: August 25, 2014, 04:11:01 PM »
Leeching and seeding is not all about simply receiving and sending data, respectively. When you receive a chunk, you need to tell the sender it was received in good condition (known as an ACK - acknowledgement), or request a resend if the piece was corrupted. The same happens when you send a chunk - you need to receive that ACK. Well, technically an ACK is sent for every packet of data, so a chunk may need multiple ACKs if the torrent is split into large chunks, but you get the idea. Maxing your pipe in any direction will therefore choke the other direction - the ACKs can't get through. That's the reason behind the 80%.

As for your real life performance, try increasing the max number of global connections, connections per torrent, and seeding/uploading slots, if you can find those settings. If your settings allow you to seed only a small number of torrents at a time, you probably aren't finding enough peers to leech from you.
« Last Edit: August 25, 2014, 04:12:38 PM by Freedom Kira »

Offline Bozobub

  • Member
  • Posts: 956
  • Demon Lord of Clowns
Re: Torrent client advice
« Reply #41 on: August 25, 2014, 04:33:07 PM »
It's a limitation of TCP/IP, and is therefore inherent in most uses of the internet.

Oh, and I apologize, getting up early = bad decimal placement, apparently - lol...

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #42 on: August 25, 2014, 05:07:32 PM »
Leeching and seeding is not all about simply receiving and sending data, respectively. When you receive a chunk, you need to tell the sender it was received in good condition (known as an ACK - acknowledgement), or request a resend if the piece was corrupted. The same happens when you send a chunk - you need to receive that ACK. Well, technically an ACK is sent for every packet of data, so a chunk may need multiple ACKs if the torrent is split into large chunks, but you get the idea. Maxing your pipe in any direction will therefore choke the other direction - the ACKs can't get through. That's the reason behind the 80%.

As for your real life performance, try increasing the max number of global connections, connections per torrent, and seeding/uploading slots, if you can find those settings. If your settings allow you to seed only a small number of torrents at a time, you probably aren't finding enough peers to leech from you.

Well I don't know how it exactly works but at least I have some more knowledge now, thanks! I've seen the option 'max number of global connections' and things like that. I increased those values. But I remember I read something about the upload slots. That you need to limit it for a better use of your bandwidth with lower overhead. I can understand that, because the more peers you have, the more overhead you would have. But the recommendation talked about ~5 upload slots for my speed. But I think that's too low, because only by increasing it to about  ~15 I can use my bandwidth fully.

Oh, and I apologize, getting up early = bad decimal placement, apparently - lol...

Haha no problem. Don't take it personally, I just corrected you a little bit ;)
MyAnimeList
My RIG

(click to show/hide)

Offline Bozobub

  • Member
  • Posts: 956
  • Demon Lord of Clowns
Re: Torrent client advice
« Reply #43 on: August 25, 2014, 06:07:16 PM »
Another suggestion is to download and use TCPOptimizer (no installation required, just run it).  Once it's open, set your connection's download speed at the top and click the "Optimal" toggle (and nothing else; ignore the other settings, for now); I'll bet $5 you see a good number of suggested changes.  Go ahead and click "Apply changes", and reboot.  I've seen up to 15% better downlload performance and 20-30% uploads at times, just using this little utility.

Note:  At any time, you can simply click the "Windows default" toggle to undo the changes.

The documentation is also at that link, but the short of it, is that Windows has very sub-optimal settings set by default.  Even in the broadband era, the TCP/IP settings are set up essentially for dial-up connection speeds.  This results in, among other things, ridiculously small packet sizes, with correspondingly larger overhead.

Additionally, a secret to TCP/IP is that while multiple connections *seem* like they should decrease data throughput, due to increased overhead, very often this is NOT the case (although there are limits, of course).  You'll likely see a performance hit on your PC, before you see a dropoff in the speed bonus from using more connections.  With that in mind, I'd recommend a total AND max-per-torrent connection setting of at least 500, if not higher, for your system.  Setting the individual limit the same as the max total allows smaller numbers of torrents to still grab all available connections; your client will be able to balance them out if more are running, don't worry (in other words, if you have multiple torrents running, one won't grab all available connections and starve the rest).  15 upload slots is probably not a terrible idea, but make sure you also have set "Allow more slots if below max upload" (or however it is worded in your client), as well.
« Last Edit: August 25, 2014, 06:47:49 PM by Bozobub »

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #44 on: August 25, 2014, 06:16:41 PM »
Seems like there are indeed some changes:



Thanks for the useful information! :D
MyAnimeList
My RIG

(click to show/hide)

Offline Freedom Kira

  • Member
  • Posts: 4325
  • Rawr™.
Re: Torrent client advice
« Reply #45 on: August 25, 2014, 06:36:27 PM »
Well I don't know how it exactly works but at least I have some more knowledge now, thanks!

Basically, when you download something in pieces (almost always the case, not just in BitTorrent), you need to continually message the uploading person that you're getting what is being sent. Otherwise the uploading person would be blindly sending data to a connection that might be broken. If those messages can't get through because of a full outgoing pipe, they'll take longer to reach the other side, which in turn slows down the rate at which they send you data.

A good analogy would be snail mail. Say you have to send a jigsaw puzzle to someone, but you can only send one copy of a piece at a time (you don't send the original, in case a piece gets lost in transit somewhere). Sending a piece takes resources, so the person receiving them needs to keep acknowledging that they've received each piece. You can send as many as you want without acknowledgement, but it makes more sense to send only a few before you stop and wait for a return message instead of draining an entire puzzle's worth of resources straight away without knowing if anything is being received.

I've seen the option 'max number of global connections' and things like that. I increased those values. But I remember I read something about the upload slots. That you need to limit it for a better use of your bandwidth with lower overhead. I can understand that, because the more peers you have, the more overhead you would have. But the recommendation talked about ~5 upload slots for my speed. But I think that's too low, because only by increasing it to about  ~15 I can use my bandwidth fully.

That recommendation is based on the assumption that there are lots of leechers and few seeders and therefore connecting to too many at a time will result in poor performance for any connected leechers. This is usually true, but BakaBT is the opposite situation, in which leechers don't need high seeding performance from seeders because there are so many to connect to. In this situation, it's better to have more upload slots so you can send data to more leechers simultaneously and more are able to connect at a time.

A corollary that should become clear is that you should seed a ton of stuff to keep that seeding speed up. More torrents = more chances to find leechers.
« Last Edit: August 25, 2014, 06:39:07 PM by Freedom Kira »

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #46 on: August 25, 2014, 06:46:32 PM »
Thanks for your great reply!


Quote
you should seed a ton of stuff to keep that seeding speed up. More torrents = more chances to find leechers.

Guess why I bought a 3 TB drive :D
There's also a huge performance and noise difference compared to my old Samsung Spinpoint F3 1TB.
 Comparison table old and new HDD
« Last Edit: August 25, 2014, 06:48:40 PM by Zaraki »
MyAnimeList
My RIG

(click to show/hide)

Offline sneaker2

  • Member
  • Posts: 146
Re: Torrent client advice
« Reply #47 on: August 25, 2014, 07:23:21 PM »
Leeching and seeding is not all about simply receiving and sending data, respectively. When you receive a chunk, you need to tell the sender it was received in good condition (known as an ACK - acknowledgement), or request a resend if the piece was corrupted. The same happens when you send a chunk - you need to receive that ACK. Well, technically an ACK is sent for every packet of data, so a chunk may need multiple ACKs if the torrent is split into large chunks, but you get the idea. Maxing your pipe in any direction will therefore choke the other direction - the ACKs can't get through. That's the reason behind the 80%.
Though a decent router would prioritize ACK packages. I can do full download and full upload simultaneously without throttling either of them in µtorrent. (And play Starcraft 2 while doing so)

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #48 on: August 26, 2014, 06:24:27 AM »
I'm done with Vuze. It just doesn't work properly.




So I installed Tixati 1.97 64bit. 80% of the time it isn't responding when I'm downloading! And the download fluctuations are too great. Is it too much asked for a client to utilize 180/18?



My PC has high end hardware, so I should have enough performance.
So the next one I should try is qbittorrent I guess.
MyAnimeList
My RIG

(click to show/hide)

Offline Bob2004

  • Member
  • Posts: 2565
Re: Torrent client advice
« Reply #49 on: August 26, 2014, 11:15:01 AM »
Just to check, you have tried running Vuze with the command-line options "-Xmx2g -Xms240m -XX:MaxDirectmemorySize=8g", rather than simply setting them in the options, right? Java has all kinds of weird quirks, so it may well be that simply setting them in the local JVM options isn't working for some random reason, and you just need to specify them manually yourself.

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #50 on: August 26, 2014, 12:03:01 PM »
I thought about that too. So I looked for the command file (or what you call it) and it seems the changes were saved in the file. So too bad it doesn't work.   
MyAnimeList
My RIG

(click to show/hide)

Offline Freedom Kira

  • Member
  • Posts: 4325
  • Rawr™.
Re: Torrent client advice
« Reply #51 on: August 26, 2014, 03:44:37 PM »
So I installed Tixati 1.97 64bit. 80% of the time it isn't responding when I'm downloading! And the download fluctuations are too great. Is it too much asked for a client to utilize 180/18?

Download fluctuations are pretty normal if there aren't enough seeders to saturate your down pipe. You're only downloading six at a time, so that could easily be the case. The unresponsiveness is an issue though. Maybe try running the 32-bit version first?

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #52 on: August 26, 2014, 04:41:38 PM »
I know that, but those torrents have many seeders which can easily saturate my bandwidth. Also a fluctuation of 1-2 MB/s wouldn't get my attention. It more like when the client freezes there's no traffic. When it unfreezes it starts with 4-5 MB/s and a fluctuation like that isn't normal.
I prefer a 64 version because a 32 bit version is limited to 2 GB RAM.
I'm now going to experiment with qbittorrent and maybe I'll try 32 bit Tixati later.
MyAnimeList
My RIG

(click to show/hide)

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #53 on: August 26, 2014, 05:18:40 PM »
It looks like qbittorrent is stable. It isn't throttling and I'm downloading 15-20 MB/s the whole time. Also the RAM usage is low with ~120 MB. I'm going to start with a more extreme environment by increasing the torrent amounts.
MyAnimeList
My RIG

(click to show/hide)

Offline Bob2004

  • Member
  • Posts: 2565
Re: Torrent client advice
« Reply #54 on: August 26, 2014, 11:38:37 PM »
I thought about that too. So I looked for the command file (or what you call it) and it seems the changes were saved in the file. So too bad it doesn't work.   

No, no, I mean finding the shortcut you use to open Vuze (or making a shortcut pointing to Vuze.exe or whatever it is if there isn't one), then adding -Xmx2g -Xms240m -XX:MaxDirectmemorySize=8g to the path that shortcut is pointing to. Java can be very weird, so just because those options are saved in the JVM options file, doesn't mean it's actually paying any attention to them.

But yeah, honestly I think Qbittorrent is probably a better client anyway tbh. Vuze tends to be quite slow and bloated relative to other clients.

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #55 on: August 27, 2014, 05:27:29 AM »
Do you mean like this?




I removed Vuze so this is just an example. So adding those settings would make the path like this:

C:\Users\Ömer\AppData\Roaming\BitTorrent\BitTorrent.exe'-Xmx2g -Xms240m -XX:MaxDirectmemorySize=8g'

As far as I remember I need to add quotation marks around it to let such things work.


I'll try that if qbittorrent doesn't work. But the thing is: it's very stable so far. I already transferred all of my torrents and it seems like the performance is also good. I'm giving it more time before making final decision.
MyAnimeList
My RIG

(click to show/hide)

Offline ConsiderPhlebas

  • Member
  • Posts: 1283
  • CP @ Live-eviL
  • Awards Award for multiple donations to Kiva charity. Award for donating to Kiva charity.
    • Live-eviL
Re: Torrent client advice
« Reply #56 on: August 27, 2014, 03:47:04 PM »
Well, if you like it, why look further?  :D

And I think you got the thing Bob2004 suggested right.

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #57 on: August 27, 2014, 04:09:31 PM »
Well, if you like it, why look further?  :D

Yeah. Qbittorrent still works fine. I need to test it out more but I can tell you that my decision is set for 90%. I think I finally got the chosen one haha :D
MyAnimeList
My RIG

(click to show/hide)

Offline Bozobub

  • Member
  • Posts: 956
  • Demon Lord of Clowns
Re: Torrent client advice
« Reply #58 on: August 27, 2014, 08:03:08 PM »
Not quite.  You add command-line arguments after the target, which is in full (double) quotes.  So, it would look like:
Code: [Select]
"C:\Users\Ömer\AppData\Roaming\BitTorrent\BitTorrent.exe" -Xmx2g -Xms240m -XX:MaxDirectmemorySize=8g
This is true for any program that you want to use command-line arguments for, so it's good to keep the syntax in mind ^^' .

Offline Zaraki

  • Member
  • Posts: 53
  • 皆さんこんにちは!
Re: Torrent client advice
« Reply #59 on: August 27, 2014, 08:05:31 PM »
Not quite.  You add command-line arguments after the target, which is in full (double) quotes.  So, it would look like:
Code: [Select]
"C:\Users\Ömer\AppData\Roaming\BitTorrent\BitTorrent.exe" -Xmx2g -Xms240m -XX:MaxDirectmemorySize=8g
This is true for any program that you want to use command-line arguments for, so it's good to keep the syntax in mind ^^' .

So the code doesn't end with quotes like this?
Code: [Select]
"C:\Users\Ömer\AppData\Roaming\BitTorrent\BitTorrent.exe" -Xmx2g -Xms240m -XX:MaxDirectmemorySize=8g"

I thought you needed them on both ends.
MyAnimeList
My RIG

(click to show/hide)