{"id":237,"date":"2017-08-09T00:25:27","date_gmt":"2017-08-09T00:25:27","guid":{"rendered":"https:\/\/pure-media.info\/?p=237"},"modified":"2017-08-09T00:30:40","modified_gmt":"2017-08-09T00:30:40","slug":"increase-throughput-reduced-latency-ubuntu-plex-media-server","status":"publish","type":"post","link":"https:\/\/pure-media.info\/index.php\/2017\/08\/09\/increase-throughput-reduced-latency-ubuntu-plex-media-server\/","title":{"rendered":"Increase throughput and reduced latency for Ubuntu Plex Media Server"},"content":{"rendered":"<h4><span style=\"color: #000000;\">This is a guide on how to\u00a0Increase throughput and reduced latency for Linux Plex Media Server the BBR algorithm was created by <a href=\"https:\/\/cloudplatform.googleblog.com\/2017\/07\/TCP-BBR-congestion-control-comes-to-GCP-your-Internet-just-got-faster.html\">google<\/a> and when used by them they have up to 14% increase in\u00a0throughput. In my person test I saw about a 10% decrease in ping or\u00a0latency and 12% increase in\u00a0throughput.<\/span><\/h4>\n<h3><\/h3>\n<h3>What is BBR?<\/h3>\n<p>BBR (&#8220;<b>B<\/b>ottleneck\u00a0<b>B<\/b>andwidth and<b>\u00a0R<\/b>ound-trip propagation time&#8221;) is a new congestion control algorithm developed at Google. Congestion control algorithms\u00a0\u2014\u00a0running inside every computer, phone or tablet connected to a network\u00a0\u2014\u00a0that decide how fast to send data.<\/p>\n<h2><strong>Requirements<\/strong><\/h2>\n<ol>\n<li>Linux kernel version 4.9 or above<\/li>\n<li>CONFIG_TCP_CONG_BBR<\/li>\n<li>CONFIG_NET_SCH_FQ<\/li>\n<\/ol>\n<p><strong>\u00a0On a Debian\/Ubuntu Linux type the following\u00a0grep command<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">grep 'CONFIG_TCP_CONG_BBR' \/boot\/config-$(uname -r)\r\ngrep 'CONFIG_NET_SCH_FQ' \/boot\/config-$(uname -r)<\/pre>\n<h2><em><strong><span style=\"color: #003300;\">Optional<\/span> (Search and install the\u00a0latest stable\u00a0version)<\/strong><\/em><\/h2>\n<p>&nbsp;<\/p>\n<p><strong>First lets fine the current Linux operating system, In this case Ubuntu 16.04.3<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">$ lsb_release -a\r\nNo LSB modules are available.\r\nDistributor ID:\tUbuntu\r\nDescription:\tUbuntu 16.04.3 LTS\r\nRelease:\t16.04\r\nCodename:\txenial<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Now lets find out the latest version of Linux kernel<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">apt-cache search linux-generic<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Current Linux version at this time is listed below.<\/strong><\/p>\n<p><code class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">Linux-image-4.10.0-30-generic - Linux kernel image for version 4.10.0 on 64 bit x86 SMP<\/code><\/p>\n<p>&nbsp;<\/p>\n<p><strong>Now on to the installation Process<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sudo apt-get install linux-image-4.10.0-30-generic<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Block Kernel updates to prevent downgrade, This is for *REQUIRED* Servers on installed on 16.04 LTS or earlier LTS Versions.<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sudo apt-mark hold linux-image-generic linux-headers-generic<\/pre>\n<h2><strong><em>Setup\u00a0BBR congestion control<\/em><\/strong><\/h2>\n<p>&nbsp;<\/p>\n<p><strong>We are now ready to\u00a0enable TCP BBR congestion control<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sudo nano \/etc\/sysctl.conf<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Add the\u00a0following two lines to the end of the conf<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">net.core.default_qdisc=fq\r\nnet.ipv4.tcp_congestion_control=bbr<\/pre>\n<p>&nbsp;<\/p>\n<p><strong>Control + X to close and Y to save. Once saved now we can Reboot and enjoy!<\/strong><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"null\">sudo reboot<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This is a guide on how to\u00a0Increase throughput and reduced latency for Linux Plex Media Server the BBR algorithm was<\/p>\n","protected":false},"author":1,"featured_media":238,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[85],"tags":[340,31,117,40,43,10,337,2,338,4,11,341,339,9,336,7],"class_list":["post-237","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-tip","tag-buffering","tag-debian","tag-faster","tag-guide","tag-how-to","tag-install","tag-latency","tag-plex","tag-remote","tag-server","tag-setup","tag-slow","tag-streams","tag-tahr","tag-throughput","tag-ubuntu"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/pure-media.info\/wp-content\/uploads\/2017\/08\/GCP-TCP-BBR-animate.gif?fit=640%2C320&ssl=1","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p7oBs4-3P","jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/posts\/237","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/comments?post=237"}],"version-history":[{"count":0,"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/posts\/237\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/media\/238"}],"wp:attachment":[{"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/media?parent=237"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/categories?post=237"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pure-media.info\/index.php\/wp-json\/wp\/v2\/tags?post=237"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}