本文介绍了如何优化 Debian 系 Linux 内核的性能,提高系统的响应速度和吞吐量。在进行优化之前,请确保您的内核版本在 3.5 以上,可以通过 uname -r 命令查看。

首先,我们需要编辑 /etc/sysctl.conf 文件,这个文件用于配置内核的运行参数。我们可以使用 vim 编辑器打开它,输入以下命令:

1
vim /etc/sysctl.conf

然后,在文件末尾添加以下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 启用 BBR 拥塞控制算法,可以有效提高网络传输速度
net.core.default_qdisc = fq
net.ipv4.tcp_congestion_control = bbr
# 增加文件系统允许打开的最大文件数,避免出现 too many open files 的错误
fs.file-max = 65535
# 开启 TCP 时间戳选项,可以防止重复 ACK 攻击,提高 TCP 的可靠性
net.ipv4.tcp_timestamps = 1
# 开启 TCP 连接复用,可以减少 TIME_WAIT 状态的连接数量,节省资源
net.ipv4.tcp_tw_reuse = 1
# 减少 TCP 连接的 FIN 超时时间,加快连接的释放
net.ipv4.tcp_fin_timeout = 30
# 减少 TCP 连接的保活时间,避免长时间占用资源
net.ipv4.tcp_keepalive_time = 600
# 扩大 TCP 连接的本地端口范围,增加可用的端口数量
net.ipv4.ip_local_port_range = 10000 65000
# 增加 TCP 连接的 SYN 队列长度,提高并发连接的处理能力
net.ipv4.tcp_max_syn_backlog = 4096
# 减少 TCP 连接的最大 TIME_WAIT 数量,防止端口耗尽
net.ipv4.tcp_max_tw_buckets = 5000
# 调整 TCP 连接的接收缓冲区大小,优化网络 I/O 性能
net.ipv4.tcp_rmem = 4096 87380 67108864
# 调整 TCP 连接的发送缓冲区大小,优化网络 I/O 性能
net.ipv4.tcp_wmem = 4096 65536 67108864
# 开启 TCP 连接的 MTU 探测功能,可以动态适应网络环境,避免分片
net.ipv4.tcp_mtu_probing = 1

保存并退出文件后,输入以下命令让配置生效:

1
sysctl --system

接下来,我们需要提高最大可打开文件描述符数量,这样可以支持更多的文件和网络连接。我们需要编辑 /etc/security/limits.conf 文件,这个文件用于配置用户和进程的资源限制。我们同样可以使用 vim 编辑器打开它,输入以下命令:

1
vim /etc/security/limits.conf

然后,在文件末尾添加以下内容:

1
2
3
# 设置所有用户(root 账户将 * 替换为 root)的软硬限制为 65535
* soft nofile 65535
* hard nofile 65535

保存并退出文件后,输入以下命令设置 ulimit:

1
ulimit -n 65535

至此,我们完成了 Debian 系 Linux 内核的优化。