{"id":208351,"date":"2025-07-14T19:14:18","date_gmt":"2025-07-14T11:14:18","guid":{"rendered":"https:\/\/server.hk\/cnblog\/?p=208351"},"modified":"2025-07-14T19:14:18","modified_gmt":"2025-07-14T11:14:18","slug":"%e6%96%bc-linux-%e7%b3%bb%e7%b5%b1%e5%95%9f%e7%94%a8-bbr-%e6%93%81%e5%a1%9e%e6%8e%a7%e5%88%b6%e6%bc%94%e7%ae%97%e6%b3%95%e4%bb%a5%e5%84%aa%e5%8c%96%e7%b6%b2%e8%b7%af%e5%82%b3%e8%bc%b8%e6%95%88","status":"publish","type":"post","link":"https:\/\/server.hk\/cnblog\/208351\/","title":{"rendered":"\u65bc Linux \u7cfb\u7d71\u555f\u7528 BBR \u64c1\u585e\u63a7\u5236\u6f14\u7b97\u6cd5\u4ee5\u512a\u5316\u7db2\u8def\u50b3\u8f38\u6548\u80fd"},"content":{"rendered":"<p class=\"ds-markdown-paragraph\">\u5728\u8ffd\u6c42\u9ad8\u6548\u80fd\u7db2\u8def\u670d\u52d9\u7684\u61c9\u7528\u5834\u666f\u4e2d\uff0c\u4f8b\u5982\u90e8\u7f72\u65bc<strong><a href=\"https:\/\/server.hk\/\">\u9999\u6e2f VPS<\/a><\/strong>\u6216 <strong><a href=\"https:\/\/server.hk\/\">\u9999\u6e2f\u96f2\u7aef\u4f3a\u670d\u5668<\/a><\/strong>\u00a0\u4e0a\u7684\u670d\u52d9\uff0c\u555f\u7528 Google \u958b\u767c\u7684 BBR (Bottleneck Bandwidth and Round-trip propagation time) TCP \u64c1\u585e\u63a7\u5236\u6f14\u7b97\u6cd5\uff0c\u80fd\u986f\u8457\u63d0\u5347\u7db2\u8def\u541e\u5410\u91cf\u4e26\u964d\u4f4e\u50b3\u8f38\u5ef6\u9072\u3002\u672c\u6307\u5357\u63d0\u4f9b\u5b8c\u6574\u7684 BBR \u555f\u7528\u6d41\u7a0b\u3002<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>\u5fc5\u8981\u689d\u4ef6\u8207\u6838\u5fc3\u7248\u672c\u78ba\u8a8d<\/strong><\/p>\n<p class=\"ds-markdown-paragraph\">BBR \u6f14\u7b97\u6cd5\u8981\u6c42 Linux \u6838\u5fc3\u7248\u672c\u9700 \u2265 4.9\u3002\u8acb\u57f7\u884c\u4ee5\u4e0b\u6307\u4ee4\u78ba\u8a8d\u7576\u524d\u6838\u5fc3\u7248\u672c\uff1a<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">bash<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token function\">uname<\/span> <span class=\"token parameter variable\">-r<\/span><\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\">\u82e5\u7248\u672c\u4f4e\u65bc 4.9\uff0c\u5247\u9700\u9032\u884c\u6838\u5fc3\u5347\u7d1a\u3002<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>\u6b65\u9a5f 1\uff1a\u5347\u7d1a Linux \u6838\u5fc3 (\u82e5\u9700\u8981)<\/strong><\/p>\n<ul>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>Debian \/ Ubuntu \u7cfb\u7d71\uff1a<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">bash<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> update\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">apt<\/span> <span class=\"token function\">install<\/span> --install-recommends linux-generic-hwe-22.04 <span class=\"token comment\"># \u7bc4\u4f8b\u9069\u7528\u65bc Ubuntu 22.04 LTS\uff0c\u8acb\u4f9d\u5be6\u969b\u7248\u672c\u8abf\u6574<\/span><\/pre>\n<\/div>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>CentOS \/ RHEL \u7cfb\u7d71\uff1a<\/strong><\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">bash<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token function\">sudo<\/span> <span class=\"token function\">rpm<\/span> <span class=\"token parameter variable\">--import<\/span> https:\/\/www.elrepo.org\/RPM-GPG-KEY-elrepo.org\r\n<span class=\"token function\">sudo<\/span> <span class=\"token function\">rpm<\/span> <span class=\"token parameter variable\">-Uvh<\/span> http:\/\/www.elrepo.org\/elrepo-release-7.0-5.el7.elrepo.noarch.rpm <span class=\"token comment\"># \u4f9d\u767c\u884c\u7248\u9078\u7528\u6b63\u78ba\u7684 elrepo-release \u5957\u4ef6<\/span>\r\n<span class=\"token function\">sudo<\/span> yum <span class=\"token parameter variable\">--enablerepo<\/span><span class=\"token operator\">=<\/span>elrepo-kernel <span class=\"token function\">install<\/span> kernel-ml <span class=\"token parameter variable\">-y<\/span><\/pre>\n<\/div>\n<\/li>\n<\/ul>\n<p class=\"ds-markdown-paragraph\"><strong>\u6b65\u9a5f 2\uff1a\u555f\u7528 BBR \u6f14\u7b97\u6cd5<\/strong><\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>\u4fee\u6539\u7cfb\u7d71\u53c3\u6578\u8a2d\u5b9a\u6a94\uff1a<\/strong><br \/>\n\u4f7f\u7528\u6587\u5b57\u7de8\u8f2f\u5668\uff08\u5982\u00a0<code>nano<\/code>\uff09\u958b\u555f\u00a0<code>\/etc\/sysctl.conf<\/code>\uff1a<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">bash<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token function\">sudo<\/span> <span class=\"token function\">nano<\/span> \/etc\/sysctl.conf<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\">\u5728\u6a94\u6848\u672b\u5c3e\u65b0\u589e\u4ee5\u4e0b\u5169\u884c\u53c3\u6578\u8a2d\u5b9a\uff1a<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">text<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre>net.core.default_qdisc = fq\r\nnet.ipv4.tcp_congestion_control = bbr<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\">\u5132\u5b58\u4e26\u95dc\u9589\u6a94\u6848\u3002<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>\u8f09\u5165\u4e26\u5957\u7528\u65b0\u8a2d\u5b9a\uff1a<\/strong><br \/>\n\u57f7\u884c\u4ee5\u4e0b\u6307\u4ee4\u4f7f\u4fee\u6539\u7acb\u5373\u751f\u6548\uff1a<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">bash<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token function\">sudo<\/span> <span class=\"token function\">sysctl<\/span> <span class=\"token parameter variable\">-p<\/span><\/pre>\n<\/div>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>\u6b65\u9a5f 3\uff1a\u9a57\u8b49 BBR \u555f\u7528\u72c0\u614b<\/strong><\/p>\n<p class=\"ds-markdown-paragraph\">\u57f7\u884c\u4ee5\u4e0b\u6307\u4ee4\u78ba\u8a8d BBR \u5df2\u6210\u529f\u8a2d\u5b9a\u70ba\u9810\u8a2d\u64c1\u585e\u63a7\u5236\u6f14\u7b97\u6cd5\uff0c\u4e14\u6838\u5fc3\u6a21\u7d44\u5df2\u8f09\u5165\uff1a<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">bash<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre><span class=\"token comment\"># \u6aa2\u67e5\u7576\u524d\u4f7f\u7528\u7684 TCP \u64c1\u585e\u63a7\u5236\u6f14\u7b97\u6cd5<\/span>\r\n<span class=\"token function\">sysctl<\/span> net.ipv4.tcp_congestion_control\r\n\r\n<span class=\"token comment\"># \u6aa2\u67e5 bbr \u6838\u5fc3\u6a21\u7d44\u662f\u5426\u5df2\u8f09\u5165<\/span>\r\nlsmod <span class=\"token operator\">|<\/span> <span class=\"token function\">grep<\/span> bbr<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\">\u9810\u671f\u8f38\u51fa\u00a0<code>net.ipv4.tcp_congestion_control = bbr<\/code>\u00a0\u4e14\u00a0<code>lsmod<\/code>\u00a0\u6307\u4ee4\u61c9\u5217\u51fa\u00a0<code>tcp_bbr<\/code>\u00a0\u6a21\u7d44\u3002<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>\u6b65\u9a5f 4\uff1a\u9032\u968e\u7db2\u8def\u53c3\u6578\u8abf\u512a (\u53ef\u9078)<\/strong><\/p>\n<p class=\"ds-markdown-paragraph\">\u70ba\u9032\u4e00\u6b65\u63d0\u5347\u7db2\u8def\u6548\u80fd\uff0c\u53ef\u8003\u616e\u5728\u00a0<code>\/etc\/sysctl.conf<\/code>\u00a0\u4e2d\u8ffd\u52a0\u4ee5\u4e0b\u53c3\u6578\uff1a<\/p>\n<div class=\"md-code-block md-code-block-light\">\n<div class=\"md-code-block-banner-wrap\">\n<div class=\"md-code-block-banner md-code-block-banner-lite\">\n<div class=\"_121d384\">\n<div class=\"d2a24f03\"><span class=\"d813de27\">text<\/span><\/div>\n<div class=\"d2a24f03\">\n<div class=\"efa13877\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<pre>net.ipv4.tcp_window_scaling = 1\r\nnet.ipv4.tcp_rmem = 4096 87380 67108864\r\nnet.ipv4.tcp_wmem = 4096 65536 67108864<\/pre>\n<\/div>\n<p class=\"ds-markdown-paragraph\">\u4fee\u6539\u5f8c\u540c\u6a23\u9700\u57f7\u884c\u00a0<code>sudo sysctl -p<\/code>\u00a0\u5957\u7528\u8a2d\u5b9a\u3002<\/p>\n<p class=\"ds-markdown-paragraph\"><strong>\u91cd\u8981\u6ce8\u610f\u4e8b\u9805<\/strong><\/p>\n<ol start=\"1\">\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>\u7cfb\u7d71\u91cd\u555f\u5efa\u8b70\uff1a<\/strong>\u00a0\u82e5\u9032\u884c\u4e86\u6838\u5fc3\u5347\u7d1a\uff0c<strong>\u5f37\u70c8\u5efa\u8b70<\/strong>\u5728\u5347\u7d1a\u5b8c\u6210\u5f8c\u91cd\u65b0\u555f\u52d5\u7cfb\u7d71 (<code>sudo reboot<\/code>)\uff0c\u4ee5\u78ba\u4fdd\u65b0\u6838\u5fc3\u53ca BBR \u6a21\u7d44\u6b63\u78ba\u8f09\u5165\u3002<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>\u865b\u64ec\u5316\u67b6\u69cb\u9650\u5236\uff1a<\/strong>\u00a0BBR \u9700\u8981\u6838\u5fc3\u5c64\u7d1a\u7684 TCP \u5806\u758a\u63a7\u5236\u6b0a\u3002\u56e0\u6b64\uff0c\u5728\u00a0<strong>OpenVZ<\/strong> \u9019\u985e\u5171\u7528\u6838\u5fc3 (Container-based) \u7684\u865b\u64ec\u5316\u67b6\u69cb\u4e0b\u7121\u6cd5\u6b63\u5e38\u904b\u4f5c\u3002\u5728\u9078\u8cfc<a href=\"https:\/\/server.hk\/\"><strong>\u9999\u6e2f VPS<\/strong><\/a>\u6216<a href=\"https:\/\/server.hk\/\"> <strong>\u9999\u6e2f\u96f2\u7aef\u4f3a\u670d\u5668<\/strong><\/a>\u00a0\u6642\uff0c\u82e5\u9700\u4f7f\u7528 BBR\uff0c\u8acb\u78ba\u8a8d\u4f9b\u61c9\u5546\u63d0\u4f9b\u7684\u662f KVM\u3001Xen \u6216 VMware \u7b49\u5b8c\u6574\u865b\u64ec\u5316 (Hardware Virtualization) \u74b0\u5883\u3002<\/p>\n<\/li>\n<li>\n<p class=\"ds-markdown-paragraph\"><strong>\u6548\u80fd\u6e2c\u8a66\u5de5\u5177\uff1a<\/strong>\u00a0\u555f\u7528 BBR \u5f8c\uff0c\u53ef\u4f7f\u7528\u00a0<code>speedtest-cli<\/code>\u00a0\u6216\u00a0<code>iperf3<\/code>\u00a0\u7b49\u5de5\u5177\u9032\u884c\u7db2\u8def\u901f\u5ea6\u6e2c\u8a66\uff0c\u4ee5\u9a57\u8b49\u6548\u80fd\u63d0\u5347\u6548\u679c\u3002<\/p>\n<\/li>\n<\/ol>\n<p class=\"ds-markdown-paragraph\"><strong>\u5e38\u898b\u554f\u984c\u6392\u9664 (Q&amp;A)<\/strong><\/p>\n<div class=\"markdown-table-wrapper\">\n<table>\n<thead>\n<tr>\n<th>\u554f\u984c\u73fe\u8c61<\/th>\n<th>\u89e3\u6c7a\u65b9\u6848<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>\u57f7\u884c\u00a0<code>sudo sysctl -p<\/code>\u00a0\u5831\u932f<\/td>\n<td>\u6aa2\u67e5\u8a2d\u5b9a\u6a94\u8def\u5f91\u662f\u5426\u6b63\u78ba\uff0c\u53ef\u660e\u78ba\u6307\u5b9a\u8def\u5f91\uff1a<code>sudo sysctl -p \/etc\/sysctl.conf<\/code><\/td>\n<\/tr>\n<tr>\n<td>BBR \u672a\u751f\u6548<\/td>\n<td>1. \u518d\u6b21\u78ba\u8a8d\u6838\u5fc3\u7248\u672c \u2265 4.9 (<code>uname -r<\/code>)\u3002<br \/>\n2. \u57f7\u884c `lsmod<\/td>\n<td>grep bbr<code>\u78ba\u8a8d<\/code>tcp_bbr` \u6a21\u7d44\u5df2\u8f09\u5165\u3002<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u5728\u8ffd\u6c42\u9ad8\u6548\u80fd\u7db2\u8def\u670d\u52d9\u7684\u61c9\u7528\u5834\u666f\u4e2d&#46;&#46;&#46;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4924],"tags":[],"class_list":["post-208351","post","type-post","status-publish","format-standard","hentry","category-setup-tutorials"],"_links":{"self":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/208351","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/comments?post=208351"}],"version-history":[{"count":0,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/posts\/208351\/revisions"}],"wp:attachment":[{"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/media?parent=208351"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/categories?post=208351"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/server.hk\/cnblog\/wp-json\/wp\/v2\/tags?post=208351"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}