开启TCP BBR拥塞控制算法,加倍提升Linux服务器性能

lionel1314 3年前
   <p>BBR 目的是要尽量跑满带宽, 并且尽量不要有排队的情况, 效果并不比速锐差</p>    <p>最新 4.9 内核已支持 tcp_bbr 下面简单讲述如何开启</p>    <h2>Debian 8 / Ubuntu 14</h2>    <ul>     <li>下载最新内核,最新内核查看 <a href="/misc/goto?guid=4959730112029958896" rel="nofollow,noindex">这里</a></li>    </ul>    <pre>  <code class="language-groovy">wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v4.9/linux-image-4.9.0-040900-generic_4.9.0-040900.201612111631_amd64.deb</code></pre>    <ul>     <li>安装内核</li>    </ul>    <pre>  <code class="language-groovy">dpkg -i linux-image-4.9.0*.deb</code></pre>    <ul>     <li>删除旧内核(可选)</li>    </ul>    <pre>  <code class="language-groovy">dpkg -l|grep linux-image   apt-get purge 旧内核</code></pre>    <ul>     <li>更新 grub 系统引导文件并重启</li>    </ul>    <pre>  <code class="language-groovy">update-grub  reboot</code></pre>    <h2>CentOS 6</h2>    <ul>     <li> <p>下载更换内核</p> <p>最新内核查看 <a href="/misc/goto?guid=4959730112115450087" rel="nofollow,noindex">这里</a></p> </li>    </ul>    <pre>  <code class="language-groovy">rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm  yum --enablerepo=elrepo-kernel install kernel-ml -y</code></pre>    <ul>     <li>查看内核是否安装成功</li>    </ul>    <pre>  <code class="language-groovy">rpm -qa | grep kernel</code></pre>    <ul>     <li>删除旧内核(可选)</li>    </ul>    <pre>  <code class="language-groovy">rpm -ev 旧内核</code></pre>    <ul>     <li>更新 grub 系统引导文件并重启</li>    </ul>    <pre>  <code class="language-groovy">sed -i 's:default=.*:default=0:g' /etc/grub.conf  reboot</code></pre>    <p>开不了机的打开vps后台控制面板的vnc, 开机卡在 grub 引导, 只需要手动选择内核就可以了</p>    <h2>CentOS 7</h2>    <ul>     <li> <p>下载更换内核</p> <p>最新内核查看 <a href="/misc/goto?guid=4959730112199407688" rel="nofollow,noindex">这里</a></p> </li>    </ul>    <pre>  <code class="language-groovy">rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org  rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm  yum --enablerepo=elrepo-kernel install kernel-ml -y</code></pre>    <ul>     <li>查看内核是否安装成功</li>    </ul>    <pre>  <code class="language-groovy">rpm -qa | grep kernel</code></pre>    <ul>     <li>删除旧内核(可选)</li>    </ul>    <pre>  <code class="language-groovy">rpm -ev 旧内核</code></pre>    <ul>     <li>更新 grub 系统引导文件并重启</li>    </ul>    <pre>  <code class="language-groovy">egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'  grub2-set-default 0  #default 0表示第一个内核设置为默认运行, 选择最新内核就对了  reboot</code></pre>    <h2>开启bbr</h2>    <p>开机后 uname -r 看看是不是内核4.9</p>    <p>执行</p>    <pre>  <code class="language-groovy">echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf  echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf</code></pre>    <p>保存生效</p>    <p>sysctl -p</p>    <p>执行</p>    <pre>  <code class="language-groovy">sysctl net.ipv4.tcp_available_congestion_control  sysctl net.ipv4.tcp_congestion_control</code></pre>    <p>如果结果都有 bbr , 则证明你的内核已开启bbr</p>    <p>执行</p>    <p>lsmod | grep bbr</p>    <p>看到有 tcp_bbr 模块即说明bbr已启动</p>    <p> </p>    <p>来自:https://github.com/iMeiji/shadowsocks_install/wiki/开启TCP-BBR拥塞控制算法</p>    <p> </p>