debian13 服务器调优

以下内容均以debian 13 2H4G进行,全程使用su用户,如不是su用户请自行添加sudo

设置swap

虽然服务器是有4G内存,但是设置swap还是能保证一些特殊情况

其中4G内存我是直接分配的4G swap,大概4G及一下设置4G swap比较好一些x

# 设置4G文件
fallocate -l 4G /swapfile
# 分配权限
chmod 600 /swapfile
# 分配为swap
mkswap /swapfile
# 挂载文件
swapon /swapfile
# 开机自动挂载
echo "/swapfile swap swap defaults 0 0" >> /etc/fstab

当前debian 13对/etc/sysctl.conf进行了修改,现在需要前往/etc/sysctl.d文件夹中创建对应的conf才能读取

其中需要配置的是系统使用swap的比例vm.swappiness,如果比例过高可能会导致高负载情况下直接将硬盘IO直接吃满导致宕机,vm.swappiness默认为60,越高越倾向于使用swap,设置为10比较好

cd /etc/sysctl.d
vim 50-swap.conf

# ==========================================
# 将下方的内容粘贴到conf中
# ==========================================
vm.swappiness = 10
# 降低 VFS 缓存回收倾向,保留更多目录和 inode 缓存,提升文件系统读取效率 (默认 100)
vm.vfs_cache_pressure = 50

# 优化脏页回写机制,防止瞬间大 I/O 造成系统卡顿
vm.dirty_ratio = 20
vm.dirty_background_ratio = 5

# ==========================================
# 结束conf编辑内容
# ==========================================

# 保存并退出vim后再运行下方命令
sysctl --system
# 当输出带有vm.swappiness = 10 即可

设置XanMod Kernel

为了以防万一请先运行下方命令查看到底是否为debian 13

. /etc/os-release && echo "$VERSION_CODENAME"
# 输出为 trixie 既是debian 13

接下来配置仓库

# 下载前置
apt update
apt install --no-install-recommends curl ca-certificates gpg lsb-release

# 检查cpu支持情况
awk -f <(wget -qO- https://dl.xanmod.org/check_x86-64_psabi.sh)
# 将会输出 CPU supports x86-64-v4 这种,其中必须要看的是v4这个,如果显示v3下方的软件包安装就要用v3而不是v4

# 配置key
install -d -m 0755 /etc/apt/keyrings
curl -fsSL https://dl.xanmod.org/archive.key | gpg --dearmor -o /etc/apt/keyrings/xanmod-archive-keyring.gpg
chmod 0644 /etc/apt/keyrings/xanmod-archive-keyring.gpg

# Deb822 格式仓库
CODENAME="$(. /etc/os-release; echo "$VERSION_CODENAME")"
sudo tee /etc/apt/sources.list.d/xanmod.sources >/dev/null <<EOF
Types: deb
URIs: http://deb.xanmod.org
Suites: ${CODENAME}
Components: main
Architectures: amd64
Signed-By: /etc/apt/keyrings/xanmod-archive-keyring.gpg
EOF

# 开始安装软件包,其中v3要改成刚刚检查cpu情况的v几
sudo apt update && sudo apt install linux-xanmod-edge-x64v3

# 重启并验证安装
sudo reboot
# 重启后
uname -r
# 如果输出为7.0.4-x64v3-xanmod1类似的即为成功

开启BBRv3

刚刚装的xanmod内核内置了BBRv3,但是并没有默认启动,需要自行添加配置文件

# 编写sysctl.conf
vim /etc/sysctl.d/99-bbrv3-optimizations.conf

# ==========================================
# 将下方的内容粘贴到conf中
# ==========================================

net.core.default_qdisc = fq_pie
# 开启 BBR(在 XanMod Edge 中,这实际上就是激活 BBRv3)
net.ipv4.tcp_congestion_control = bbr

# ==========================================
# 针对 4G 内存的 TCP 缓冲区适度优化 (上限 16MB)
# ==========================================
# 不建议设置到 32MB 或更高,以防 4G 内存的高并发机器出现 OOM
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem = 4096 87380 16777216
net.ipv4.tcp_wmem = 4096 65536 16777216

# ==========================================
# 针对 2核 CPU 的连接复用和队列抗压优化
# ==========================================
# 开启 TCP Fast Open,降低握手延迟 (3 = 开启客户端与服务端 TFO)
net.ipv4.tcp_fastopen = 3

# 允许将 TIME-WAIT sockets 重新用于新的 TCP 连接,极大降低 2H CPU 端口释放压力
net.ipv4.tcp_tw_reuse = 1

# 抵御 SYN 洪水攻击并增加积压队列
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 8192

# 提升系统最大全连接队列数
net.core.somaxconn = 8192

# ==========================================
# 结束conf编辑内容
# ==========================================

# 应用配置
sysctl --system

磁盘 I/O 挂载优化

Linux 默认在每次读取文件时都会更新文件的最后访问时间 (atime),这会导致不必要的开销

vim /etc/fstab

# 找到例如UUID=xxx-xxx-xxx-xxx-xxx / ext4 errors=remount-ro 0 1
# 在 errors=remount-ro后添加 ,noatime 即可
UUID=xxx-xxx-xxx-xxx-xxx / ext4 errors=remount-ro,noatime 0 1

# 退出vim后运行下方命令重挂载
mount -o remount /
systemctl daemon-reload