-
Linux 提高文件并发性,启用高级算法 hybla
在Linux下,我们使用命令ulimit -n来查看单个进程可以打开的最大文件句柄数(socket连接包括在此)。系统默认值为 1024,1024 对一般应用程序(如 Apache、系统进程)完全足够。但是单进程,比如squid、mysql、java等应用如何处理大量的请求就有点捉襟见肘了。如果单个进程打开的文件句柄数超过系统定义的值,则会提示“打开的文件太多”错误。为了处理更多的并发 TCP 连接,我们应该增加最大并发打开文件数的限制。 增加最大并发文件数 将两行文本添加到limits.conf echo '* soft nofile 51200 * hard nofile 51200' >> /etc/security/limits.conf 然后继续设置ulimit ulimit -n 51200 调整内核参数+启用高级算法hybl 注意:这一步不适用于OpenVZ或更低版本的内核,否则最后一步sysctl -p会报很多错误,如果不行就说明内核支持hibla等高级算法等参数调整。 在 /etc/sysctl.conf 中添加一些参数 echo 'fs.file-max = 51200 net.core.rmem_max = 67108864 net.core.wmem_max = 67108864 net.core.netdev_max_backlog = 250000 net.core.somaxconn = 4096 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 0 net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 1200 net.ipv4.ip_local_port_range = 10000 65000 net.ipv4.tcp_max_syn_backlog = 8192 net.ipv4.tcp_max_tw_buckets = 5000 net.ipv4.tcp_fastopen = 3 net.ipv4.tcp_mem = 25600 51200 102400 net.ipv4.tcp_rmem = 4096 87380 67108864 net.ipv4.tcp_wmem = 4096 65536 67108864 net.ipv4.tcp_mtu_probing = 1 net.ipv4.tcp_congestion_control = hybla' >> /etc/sysctl.conf 然后运行“sysctl -p”重新加载配置。 如果提示类似如下信息,说明你的内核不支持提示错误的功能或命令 sysctl: cannot stat /proc/sys/net/ipv4/xxxxx: No such file or directory
-
通过启用TCP BBR轻松提升Ubuntu网络性能
本教程向您展示了如何在Ubuntu上启用TCP BBR。TCP BBR是由Google开发的TCP拥塞控制算法。它解决了传统TCP拥塞控制算法(Reno或CUBIC)的缺点。据谷歌称,它可以实现几个数量级的更高带宽和更低延迟。TCP BBR已经在谷歌上使用。com、YouTube和谷歌云平台以及互联网工程任务组(IETF)自2017年7月以来一直在对该算法进行标准化。BBR代表瓶颈带宽和RTT。 BBR只需要在发送方进行更改。您可以在Linux桌面上启用TCP BBR,以改善整体网络冲浪体验。如果您有Linux web服务器,TCP BBR可以为您的网站访问者实现更快的网页下载。 第一步:检查Linux上的TCP拥塞控制算法 默认情况下,Linux使用Reno和CUBIC拥塞控制算法。要检查可用的拥塞控制算法,请运行以下命令。 sysctl网络。ipv4。tcpu可用u拥塞u控制 输出: 网ipv4。tcp_可用_拥塞_控制=立方雷诺 要检查当前使用的拥塞控制算法,请运行 sysctl网络。ipv4。拥塞控制 输出: 网ipv4。tcp_拥塞_控制=立方 第2步:安装Linux内核4.9或更高版本 从内核版本4.9开始,Linux就支持TCP BBR。使用以下命令检查Linux内核版本。 内核版本 Ubuntu 18.04有内核4.13。 4.13.0-16-通用 在Ubuntu 16.04上安装Linux内核4.10非常容易。你不必从Ubuntu网站手动下载内核。只需安装硬件支持堆栈(HWE),它为Ubuntu LTS版本提供了更新的内核。 sudo-apt更新sudo-apt-install——安装推荐linux-generic-hwe-16.04 您的VPS提供商可能会使用定制的Linux内核,而不是Ubuntu提供的内核。如果使用Linode VPS,则需要转到Linode VPS控制面板,编辑配置文件。 在引导设置中,将内核设置为GRUB2。 保存更改。然后重新启动以使用新的4.10内核。 sudo关机-现在关机 第3步:在Ubuntu中启用TCP BBR 一旦有了内核4.9或更高版本,编辑sysctl。conf文件。 sudo nano/etc/sysctl。形态 在文件末尾添加以下两行。 网果心默认值_qdisc=fq net。ipv4。tcp_拥塞_控制=bbr 保存并关闭文件。然后重新加载sysctl配置。 sudo sysctl-p 如果您已在文件中正确添加了上述两行,那么它们将包含在输出中,如下所示。 [email ;protected]:~$sudo sysctl-p net。果心默认值_qdisc=fq net。ipv4。tcp_拥塞_控制=bbr 现在检查正在使用的拥塞控制算法。 sysctl网络。ipv4。拥塞控制 输出: 网ipv4。tcp_拥塞_控制=bbr 恭喜!您已经在Ubuntu上成功启用了TCP BBR。 速度提升 我在低端VPS上使用Shadowsocks代理来测试TCP BBR。速度的提高是巨大的。下面的屏幕截图显示了在我的代理服务器上启用TCP BBR之前YouTube的连接速度。如你所见,速度只有400Kb/s(50KB/s)。 这是在我的代理服务器上启用TCP BBR后的YouTube连接速度。9878 Kb/s大约是1234 Kb/s。我的代理服务器的速度快了24倍! 在第二台Shadowsocks代理服务器上,启用TCP BBR后,速度从约10Mbit/s提高到约62Mbit/s(64172Kbit/s)。 不要禁用TCP窗口缩放 您可能需要禁用TCP窗口缩放以修复问题,但这样做会大大降低网络性能。在/etc/sysctl中添加以下行。conf文件以启用TCP窗口缩放。 网ipv4。tcp_窗口_缩放=1 然后应用更改。 sudo sysctl-p 就这样!我希望本教程能帮助您在Ubuntu上启用TCP BBR。一如既往,如果你觉得这篇文章有用,那么订阅我们的免费时事通讯,获得更多有用的提示和技巧。