Things to think about when tuning libtorrent for high performance

An user on the libtorrent mailing list had the following problem:

I’m doing some testing for a libtorrent application that will use a small number of peers (often just 1 seed and 1 downloaded) and high bandwidth delay product links (in the hundreds of Mb/s and 100ms+ round trip). I’m unable to get more than 20Mbps with a single peer on a 140ms RTT link (simulated delay with no packet loss). If I take the network simulator delay down to 0, I can get almost a full 1000Mbps on the same system. I’ve tried playing with everything that sounded relevant in session_settings, but nothing seems to make any improvement at all.

Is this the best that can be expected out of uTP on a high latency link? Or is there some combination of parameters that would improve the single peer throughput? Alternatively, is there a way to get libtorrent to make multiple connections between the same 2 peers?

If you’re facing a similar situation here are some things you could adjust according to Arvid Norberg lead engineer of the libtorrent project.

“Did you increase the socket buffer sizes on both ends?”

int recv_socket_buffer_size;
int send_socket_buffer_size;

“There’s also buffer sizes at the bittorrent level:”

int send_buffer_low_watermark;
int send_buffer_watermark;
int send_buffer_watermark_factor;

“And there are buffers at the disk layer:”

int max_queued_disk_bytes;
int max_queued_disk_bytes_low_watermark;

If the performance issue happens with uTP but not TCP though, it’s probably
just the first ones that matters.

Also, the uTP implementation needs a system call for each packet sent and
received (i.e. it does not use sendmmsg()/recvmmsg()) which also makes it
more expensive than TCP, but that would primarily cause additional CPU
usage, and only slow-downs once a CPU core is pegged.

New FrostWire 5.7.7 available for Windows, Mac and Linux. Contributors now earn bitcoins instantaneously.

Download FrostWire 5.7.7 for Windows (Bitcoin enabled .torrent)
Download FrostWire 5.7.7 for MacOSX (.torrent)
Download FrostWire 5.7.7 for Debian/Ubuntu (.torrent)

This update focuses on fixing multiple user interface issues, mostly related to the media player. Libraries were updated, a nasty freeze when opening FrostWire out of a magnet link has finally been fixed, and new linux collaborators have given some love to our codebase.

Screen Shot 2014-10-02 at 9.50.11 AM

 

Like on Android, you can now fully stop the player
by long pressing the Play/Pause player button.

FrostWire now has a new feature in which it tries to detect wether or not you are using a VPN connection to warn you about the possibility of your privacy being at risk.

We recommend that whenever you are online you connect to the internet using an encrypted VPN connection to protect your identity and your privacy.

Build & Fix FrostWire, get paid in Bitcoins immediatly
If you are a developer/translator/graphic designer, you should know that now you can earn bitcoins when your patches and contributions are merged to the master branches of our open source projects on github.

You will automatically receive Bitcoins in your Bitcoin wallet, you just need to have a github account and a tip4commit account where you can register your Bitcoin wallet address. Payments are sent within minutes of your patches being merged.

FrostWire Bitcoin donations are being diverted into our main open source projects frostwire-desktop, frostwire-android, frostwire-common and frostwire-jlibtorrent.

Each merged commit gets 1% of what’s left on each fund.

Preparing for FrostWire 6

We are hard at work on the next generation of FrostWire 6, if you paid attention to the names of our repositories, or if you follow this blog, you may have read about the frostwire-jlibtorrent project. We have made a full featured Java wrapper API out of the C++ libtorrent library and the results of our tests have been phenomenal. We’re currently replacing all of our Bittorrent core for one that uses libtorrent and we’re pretty sure you will feel the difference.

Join the FrostWire Beta Testers group to help us release a steady FrostWire 6.

Changelog

frostwire (5.7.7) stable; urgency=high
  * New: VPN connection status indicator.
  * New: Stop media playback by long pressing play/pause button.
  * Fix: Freeze when opening FrostWire from the first time out of
    clicking on a magnet link or .torrent file.
  * Fix: Bug where files couldn't be played with the main player button.
  * Fix: Bug where the speaker icon on the library would still show
    after the media player had stopped.
  * Fix: Bug after 5.7.5 in which the buttons of the Create Torrent
    dialog were not visible unless the window was resized.
  * Fixes issue on Linux when player window pixel translucency could
    not be set. Thanks @foutrelis.
  * Fixes Null Pointer Exception when trying to shutdown and hide
    an MPlayerWindow that may have not been instantiated.
  * Fixes issue where user could not create new playlist by dropping
    songs from existing playlist into 'New Playlist' list item in
    the library.
  * Updated MigLayout source code to version 4.0

 -- FrostWire Team <contact@frostwire.com>  Wed, 01 October 2014 17:00:00 -0500

New FrostWire 5.7.2 with uTP support

Download FrostWire 5.7.2 for Windows (Bitcoin, Litecoin, Dogecoin enabled .torrent)
Download FrostWire 5.7.2 for MacOSX (.torrent)
Download FrostWire 5.7.2 for Debian/Ubuntu (.torrent)

This release is all about performance and stability.

Some users have complained about what happens to their internet connection when using FrostWire heavily, so we’ve finally added uTP support to solve these issues.

FrostWire can now deal with bandwidth congestion issues in a way that won’t compromise your internet experience while you use it.

You can, for example, see how FrostWire will automatically adjust its transfer speeds to cede network resources to other programs in your computer, like your web browser while surfing the web or streaming a movie from Netflix.

If the connection is not being used by any other software FrostWire will automatically use as much bandwidth as it can, and you don’t have to do this manually using the existing throttling controls, and all this while not clogging up your router’s memory.

Another benefit of having added uTP is that some WiFi/DSL/Cable routers won’t have issues with packet data overflow when torrenting with FrostWire, which in some cases can completely drop the internet connection forcing you to restart your router to reconnect to the Internet.

We’ve also taken care of very important user experience details, that should make FrostWire easier to understand for new users, as well as smaller usability bugs and crashes that have been fixed.

Here’s the full list of changes.

frostwire (5.7.2) stable; urgency=high
  * uTP support enabled.
  * Multiple crash fixes.
  * UX: playable single file torrents now can be played from transfer list.
  * UX: Fixes UI Thread freeze when opening Options > Search.
  * UX: Better error reporting when a torrent can't be fetched from a
        magnet connection.
  * Spanish translation update by @dennistobar.
-- FrostWire Team <contact@frostwire.com> Fri, 11 Apr 2014 14:22:10 -0500

Love FrostWire?
Consider donating. bitcoin – dogecoin – $1 – $5 – $10 – $25 – paypal

Get FrostWire 1.0 for Android

If you are getting an Android device this holiday season, we’ve spent the last 5 months building a must-have app for it.

Install FrostWire via Google Play.

Download the .apk installer.

Here’s a few things you can do with our completely re-designed and easy to use file sharing client and media player.

Improved search that integrates with the cloud.

Search results are faster than ever (instant in most cases) and not only you’ll have the most powerful BitTorrent Deep-Smart search[1] featured in previous versions, now FrostWire integrates with popular cloud services where content creators from all over the world share millions of legally available files[2].

The fastest downloads ever on any FrostWire for Android.

Be it on Wi-Fi, 3G or 4G you will experience in most cases downloads that are so fast you won’t even see the progress bar begin to move, by the time the transfer screen is opened the file will already be on your device. Specially when sharing files with other FrostWire devices (PCs too) on the same Wi-Fi network.

Share files between phones, tablets and computers without any networking know-how

You don’t have to use cables or become a computer guru to share files between your phones, tablets or computers. We’ve also been working on FrostWire for desktop so that when you open FrostWire on your phone or computer you will be able to see every device automatically.

Just make files publicly available by opening padlock icons next to the files and every device running FrostWire will be able to download and even stream music or video from each other.

This makes it great for groups of people (work, school, home, party), now you only need to take only one photo and share it with everybody else next time you’re all connected to the same Wi-Fi hotspot.

Sending documents, music, family videos between your mobile, tablet or computer has never been easier or faster, best of all it doesn’t even matter what Operating system you’re running, Windows, Mac, Linux, it doesn’t matter, all you need is FrostWire and a Wi-Fi router. It just works.

World class Gesture Based Music Player

We’ve redesigned our music player for simplicity and convenience. FrostWire’s music player is the world’s first gesture based music player, we built it thinking of drivers in mind, no need to take your eyes off the road if you want to switch songs or pause/resume playback.

On this version we’ve introduced a beautiful new design with a 3D presentation of the album art currently being played. It also has functionality to share or un-share the file you’re currently listening to without having to browse or find the file on your device.

Easier Navigation

We’ve recreated the navigation system on the application, it now has a beautiful animated and responsive slide in menu that will take you anywhere in the app, with room for future functionality, and if you’re playing a song you will be able to see the album art of the song being played.

We’ve also implemented a custom “Back” history handler so that you can backtrack perfectly the screens you’ve navigated as you used the app. You now have random access navigation through the menu, and sequential access navigation through the Android’s back key.

We’ve added new controls to let you instantly filter your own files and see which are being shared on the Wi-Fi network and which aren’t in just one touch.

Install FrostWire on your Android and spread the word, the more the merrier, it’s absolutely free.

Install FrostWire via Google Play.

Download the .apk installer.

[1] FrostWire's Deep-Smart search uses the most popular torrent indexing services to fetch torrent files, then FrostWire opens these files and searches for the individual files indexed by the torrent. As FrostWire searches it remembers the files it's seen in the past to make your next searches instantaneous.

[2] Only on YouTube.com in 2012 it was announced users had shared over 4 million Creative Commons licensed videos. FrostWire also taps on SoundCloud.com, the internet's biggest sound and music community of content creators, bands, singers and DJs that pay to make their music available for free to the SoundCloud community. If you share your content on YouTube or SoundCloud you're automatically available to the millions of FrostWire users on both Desktop and Android. Integration with more popular cloud services to come in the next releases.

When you download and install FrostWire you must agree that you will not use it for the purpose of copyright infringement otherwise the software won't work. FrostWire condemns copyright infringement. Downloading FrostWire does not constitute permission or a license for obtaining or distributing unauthorized files. It is illegal for you to distribute copyrighted files without permission. If you want to know about legal content you can download and distribute legally please visit FrostClick.com, Vodo.net, ClearBits.net, LegitTorrents.info and CreativeCommons.org

The tables are turning

The internet already allows for zero cost content distribution to large amounts of people with technologies like BitTorrent.

As the time goes by, labels will be lucky if they’re still getting artists signed, sites like Bandcamp and YouTube empower artists to go directly to their fans.

The tools at hand no longer create barriers for non popular genres to reach their audiences, the adoption and advance of smartphones and mobile networks will make it even easier to distribute content to your fans, right to the palm of their hand.

I believe the long tail of music taste is a far bigger market than the one the big labels have been focused on all these years, and that long tail is very reachable today by anybody with internet access (which is starting to spread massively on mobile devices).

When most content creators in the planet realize this, the attention of file sharers will be scarce and I think it will come to a point on which they’ll be willing to pay to reach the very audiences that will care about their work, at that point they will pay to share (think Google Adwords for content). Relevant discovery and recommendation tools are be very important for the massive amount of independent content being created every day.

Bands already want to share, Creative Commons licenses are here to show us what copyright should be like on the internet, The tables are turning and the channels are here and getting better and better.

Now extrapolate to every form of content.

Geek T-Shirt Collection #14 – FrostWire

This is the official FrostWire T-Shirt. I contribute to this open source project to keep my java skills up to date. We had a lot of these t-shirt printed to gather donations for the project. Thanks to the people that support us there’s only a few left (only M size) so Get your T-Shirt and support FrostWire.

What is FrostWire (According to Wikipedia)
FrostWire is a peer-to-peer file sharing program for the Gnutella and BitTorrent protocols. FrostWire is written in Java, and is a fork of LimeWire, another popular Gnutella client. Released under the GNU General Public License, FrostWire is free software.

See the Next T-Shirt
See the Previous T-Shirt

New FrostWire 4.17.2 for Windows is out

Download FrostWire 4.17.2 for Windows

CHANGELOG:

Version 4.17.2 (November 2008)

  • Fixes a newly introduced bug in Windows which would make FrostWire(tm) take over the .bittorrent file association without asking the user.
  • Reduces DHT network load. The LimeWire team found out that the Mojito “store forwarding” feature would not provide extra data availability, so it’s been turned off from the DHT on all new FrostWires.
  • FrostWire.ico has been updated. Now when FrostWire(tm) is associated to .bittorrent files, .bittorrent files will use the FrostWire(tm) icon.
  • About FrostWire
    FrostWire, a BitTorrent/Gnutella Peer-to-Peer client, is a collaborative effort from many Open Source developers and contributors from all around the world. In late 2005, concerned developers of LimeWire’s open source community announced the start of a new project fork “FrostWire” that would protect the developmental source code of the LimeWire client and any improvements to the Gnutella protocol design. The developers of FrostWire give high regard and respect to the GNU General Public License and consider it to be the ideal foundation of a creative and free enterprise market.

    New FrostWire 4.17.1 Released

    Source

    FOR IMMEDIATE RELEASE:

    Official FrostWire 4.17.1 Download link

    FrostWire.com — The last of the 4.17.x FrostWire series is finally out. The following is a list of the most important updates made for this release, which irons out most of the complains received from the community in regards to 4.17.0.

    The new FrostWire will allow us to distribute twice the number of installers using the same bandwidth employed by 4.17.0, The new FrostWire installer has been reduced in sized more than 50% by using the latest in compression technology.

  • Half sized installers
  • It will attempt to add the default Library folder of 4.13.5 so users won’t feel like they lost their old library
  • FrostWire now can be auto-started when Windows starts. This setting is available from the ‘Option’ menu (‘Windows boot’) and from the initial setup.
  • File Association issues fixed. FrostWire will open automatically on Windows and MacOSX upon clicking on .torrents (files and links), and magnet links.
  • Fixes compatibility issues with iTunes 8
  • Heavy work on all translations. Translation files now work with launchpad.net for more open collaboration of worldwide translator volunteers
  • Default Community Chat chatroom auto join update (in your own language) makes chatting friendlier to non-english speaking users. Users that speak the following languages will auto join to rooms of their own language: Dutch, Portuguese, French, German, Spanish, Turkish, Norwegian, Danish, Italian, Swedish, Polish, Czech, Filipino, Japanese, Finnish and Hungarian. No more unexplained kicks to international users!
  • Updated “FrostWire” font logo on the Logo Pane
  • Icons updated
  • Volume toolbar graphic replaced
  • Fixed playback Issue when continuous playback was selected
  • Valid Chatroom links will now open on the user’s default browser
  • About FrostWire

    FrostWire, a BitTorrent/Gnutella Peer-to-Peer client, is a collaborative effort from many Open Source developers and contributors from all around the world. In late 2005, concerned developers of LimeWire’s open source community announced the start of a new project fork “FrostWire” that would protect the developmental source code of the LimeWire client and any improvements to the Gnutella protocol design. The developers of FrostWire give high regard and respect to the GNU General Public License and consider it to be the ideal foundation of a creative and free enterprise market.

    One Mind – A Creative Commons Music Album by Charles Manson

    Download Torrent with Full Album

    Download FrostWire for free if you don’t have a Torrent downloader.

    Play it

    Bandwidth and Storage courtesy of MyBloop.com


    Digg it?

    Released April 7, 2005 by FamilyJams.com, made available under Creative Commons Attribution-Noncommercial-Share Alike 2.0 Generic in April 2008.

    One Mind is brand new, never before released material. Songs, guitar, impromptu poetry and words. Professionally produced and shrink wrapped, this CD is fully authorized and approved under Creative Commons. Over 75 minutes in length.

    Tracks


    I Can See You
    Angels Fear To Tread
    Riding On Your Fears
    I Don’t Need Water Sprinklers In The Desert
    Your Magic Motion
    Whoever You Are
    The Black Pirate
    So We Go Again
    Self Is Eternal (What Our World Will Be)
    Sometimes It Works Just Right
    Sweet Words
    Interpretations
    If You Have No One
    I Keep On Wondering (interupted)
    1967 – Mac Brother
    Venice, CA

    Via Frostclick.com

    Related Articles:
    LimeWire Blog
    Wired Blog