Ubuntu 服务器性能优化方法

Ubuntu 服务器性能优化方法

Ubuntu Server(主流 24.04 LTS / 即将普及的 26.04 LTS)性能优化本质上是针对具体工作负载的权衡与微调,而不是盲目套用“万能参数”。 内核默认设置偏向通用性与稳定性(桌面友好 + 低功耗优先),在高并发、高吞吐、生产服务器场景下往往留有大量优化空间。

优化分为四个层次,优先级从高到低:

  1. 理解瓶颈(监控先行)
  2. 系统级调优(内核参数、调度器、文件系统)
  3. 服务级调优(应用自身配置)
  4. 硬件/架构级调整(NUMA、CPU governor、磁盘调度)

1. 第一步:永远先监控与基准测试

没有基线就没有方向。常见误区是“感觉慢就乱改 sysctl”。

必须掌握的工具组合(2026 年生产标配):

  • 实时概览:btop / glances / htop(进程/CPU/内存/IO/网络一屏看全)
  • 历史趋势:Netdata(零配置 Web 仪表盘)或 Prometheus + node_exporter
  • 启动瓶颈:systemd-analyze blame / critical-chain / plot
  • 磁盘 IO:iostat -xmdz 1、iotop
  • 网络:ss -m、nstat -az、mtr、iperf3
  • 内存压力:vmstat 1 5(看 si/so 列)、free -h -w

关键指标阈值参考(经验值,非绝对):

  • CPU iowait > 15–20% → IO 瓶颈
  • vm.swappiness 高 + si/so > 0 → 内存压力大
  • %util > 85–90% + await > 10–20 ms → 存储饱和
  • load average > 核数 × 1.5–2 → 过载
  • tcp retrans > 1–2% → 网络问题

2. 内存与 Swap 优化

Linux 内存管理核心参数:vm.swappiness(默认 60)

  • swappiness = 0–100:值越高,越倾向提前换出匿名页(进程私有内存)
  • 服务器场景:强烈建议降低到 10 或更低(甚至 1–5),尤其 SSD 或内存充足时
    • 原因:频繁 swap 导致 IO 爆炸,延迟剧增
    • 桌面:10–30 合理;服务器:10 以下常见,极端场景设 0(但不推荐完全禁用 swap)

其他内存相关高收益参数:

  • vm.vfs_cache_pressure = 50(默认 100):降低目录/文件元数据回收倾向
  • vm.dirty_ratio / vm.dirty_background_ratio:脏页写回比例(数据库/文件服务器调低)
  • vm.overcommit_memory = 1(允许 overcommit,适合内存密集型应用)

3. 网络栈优化(高并发/高吞吐服务器必调)

现代服务器网络性能瓶颈往往在内核缓冲区、连接队列、拥塞控制。

高频调优参数(/etc/sysctl.d/99-performance.conf):

  • net.core.somaxconn = 8192–65535(监听队列长度)
  • net.ipv4.tcp_max_syn_backlog = 8192+
  • net.core.rmem_max / wmem_max = 16MB–64MB(接收/发送缓冲最大值)
  • net.ipv4.tcp_rmem / tcp_wmem = “4096 131072 16777216″(最小 默认 最大)
  • net.ipv4.tcp_fin_timeout = 15–30(缩短 TIME_WAIT)
  • net.ipv4.tcp_tw_reuse = 1(重用 TIME_WAIT socket)
  • net.ipv4.tcp_congestion_control = bbr(或 bbrv3,如果内核支持)

拥塞控制

  • 默认 cubic → BBR(Google 算法)在高丢包/高延迟链路收益巨大
  • Ubuntu 24.04+ 内核已内置 BBRv2/v3 支持

4. CPU 与调度优化

  • CPU Governor(cpupower 或 tuned):
    • 默认:ondemand / schedutil(平衡功耗)
    • 高性能场景:performance(固定最高频)
    • 低延迟场景:performance 或自定义 low-latency 内核参数(24.04+ 支持)
  • IRQ 平衡:irqbalance 服务(默认启用),大型多核服务器可关闭并手动绑定
  • NUMA 感知:numactl –hardware 检查,数据库/内存密集应用用 numactl 绑定

5. 文件系统与 IO 调度

  • 调度器(/sys/block/nvmeXnY/queue/scheduler):
    • NVMe/SSD:nonemq-deadline
    • HDD:bfqkyber
  • ext4/xfs 挂载选项
    • noatime、nodiratime(减少元数据写)
    • 数据盘:discard(TRIM 支持)
  • I/O 优先级:ionice -c 1 -n 0 重要进程

6. 其他高收益小调整

  • zram / zswap:内存压缩 swap(取代传统 swap 分区,SSD 友好)
  • journald:限制大小(SystemMaxUse=2G–5G)
  • 透明大页(THP):数据库慎用(建议 never / madvise)
  • 打开文件数:fs.file-max = 1000000+,nofile ulimit 65535+

7. 2026 年生产优化决策框架

场景优先调优方向预期收益风险等级
Web/API 高并发网络栈 + somaxconn + BBR
数据库(MySQL/PG)swappiness 10 + THP off + IO极高中高
文件/对象存储IO 调度 + dirty_ratio
低延迟应用CPU performance + low-latency 内核参数
内存吃紧服务器zram + swappiness 1–10中高

核心提醒

  • 所有 sysctl 变更先临时测试(sysctl -w),观察 24–48 小时
  • 永久生效放 /etc/sysctl.d/99-xxx.conf 而非 sysctl.conf
  • 改完 sysctl -p 立即生效
  • 基准测试前后对比(ab / wrk / sysbench / fio / iperf3)
  • 生产环境变更需变更控制 + 回滚计划

性能优化是持续迭代的过程,不是一劳永逸。 先用监控工具找到真正瓶颈,再针对性调整,才是最高效的路径。

Telegram