Skip to content

内核优化

内核优化主要针对 Linux 操作系统而非 Windows,以下命令需要以 root 权限运行

内核参数优化

tuned 调优服务可以通过设置调优配置文件来调整操作系统,以便在特定工作负载下更好地执行.

执行以下命令来安装 tuned:

然后启动:

shell
systemctl enable tuned --now

然后运行工具并使用以下命令调整内核:

shell
tuned-adm profile throughput-performance

设置大页面

打开文件 /etc/sysctl.conf,在末尾添加以下内容

text
vm.nr_hugepages = <需要的页数>

可以通过一个公式知道需要的页数:

text
(分配的内存数(单位:MB)) / 2 + 300

比如我分配了 12GB 的内存(也就是 12288 MB),那么设置的值为12288 / 2+ 300 = 6444,最后的设置应该长这样

text
vm.nr_hugepages = 6444

然后重启物理机

激活透明大页面

首先需要检查操作系统是否支持大页面:

shell
cat /sys/kernel/mm/transparent_hugepage/shmem_enabled

如果返回包含以下内容,那么操作系统支持透明大页面

shell
always within_size advise never deny force

然后运行以下命令激活透明大页面

shell
echo madvise | sudo tee /sys/kernel/mm/transparent_hugepage/enabled
echo advise | sudo tee /sys/kernel/mm/transparent_hugepage/shmem_enabled
echo defer | sudo tee /sys/kernel/mm/transparent_hugepage/defrag
echo 1 | sudo tee /sys/kernel/mm/transparent_hugepage/khugepaged/defrag

最后,我们需要配置开机自启动

shell
sudo apt install sysfsutils

sudo tee /etc/sysfs.d/enableTHP.conf <<EOF
kernel/mm/transparent_hugepage/enabled=madvise
kernel/mm/transparent_hugepage/shmem_enabled=advise
kernel/mm/transparent_hugepage/defrag=defer
kernel/mm/transparent_hugepage/khugepaged/defrag=1
EOF

sudo systemctl restart sysfsutils

这样就可以了,然后重启机器即可

CPU 调优

强制所有 CPU 核心运行在最高频率(不同于超频,不会影响 CPU 寿命)

shell
sudo cpupower frequency-set -g performance

网络优化

拥塞控制算法

TCP 网络优化主要是改进拥塞控制算法,BBR 是由 Google 开发的网络拥塞控制算法,它可以优化数据包的处理方式,显著提升网络传输效率和稳定性

首先检查当前 BBR 状态,避免重复操作

shell
sysctl net.ipv4.tcp_congestion_control
  • 如果返回net.ipv4.tcp_congestion_control = bbr,表示 BBR 已启用。
  • 如果返回其它算法,比如cubicreno,则说明 BBR 尚未激活。

接着激活 BBR

检查兼容性:

shell
sudo modprobe tcp_bbr

如果系统兼容 BBR,上述命令将不会有任何输出;如果不兼容,则会返回报错信息,此时需要自行更新操作系统内核

如果兼容,运行以下命令激活 BBR

shell
sudo sh -c 'echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf'
sudo sh -c 'echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf'
sudo sysctl -p

之后重启网络服务

最后运行第一步的检查 BBR 是否已经启动

BBRv3

BBRv3 是 Google 最新开发的 BBR 算法,不过目前没有合并到 Linux 内核,需要自行更新内核

警告

在更新内核前,请先备份内核

shell
wget https://raw.githubusercontent.com/byJoey/Actions-bbr-v3/refs/heads/main/install.sh
chmod +x install.sh
./install.sh

输入1安装 BBR V3,安装重启后选择BBR + FQ算法即可使用 BBR V3

TCP Fast Open

TCP Fast Open (TFO) 是一种优化 TCP 连接的方法,可以加快 TCP 连接的建立速度

Linux kernel 3.13 及以上默认已经开启了TFO,但默认设置一般为 1,我们需要调整为 3(在服务器连接上启用)

shell
echo 'net.ipv4.tcp_fastopen=3' > /etc/sysctl.conf
sysctl -p

重启网络服务完成