Skip to Content
文档运维系统管理性能优化

性能优化

本文介绍 Ubuntu 26.04 中常用的性能监控工具和优化技巧,帮助你充分发挥系统硬件的性能潜力。

系统监控工具

htop - 交互式进程管理

# 安装(Ubuntu 26.04 通常已预装) sudo apt install htop # 启动 htop

htop 常用操作:

快捷键功能
F2设置/配置界面
F3搜索进程
F4过滤进程
F5树形视图
F6排序
F9发送信号(杀死进程)
F10退出
u按用户过滤
M按内存排序
P按 CPU 排序
T按时间排序

其他监控工具

# top - 基础进程监控 top # vmstat - 虚拟内存统计 vmstat 1 5 # 每秒一次,共 5 次 # iostat - I/O 统计 sudo apt install sysstat iostat -xz 1 # iotop - 查看进程 I/O sudo apt install iotop sudo iotop # nmon - 综合性能监控 sudo apt install nmon nmon # glances - 现代化系统监控 sudo apt install glances glances # btop - 美观的资源监控 sudo apt install btop btop

查看系统资源信息

# CPU 信息 lscpu cat /proc/cpuinfo | grep "model name" | head -1 # 内存信息 free -h cat /proc/meminfo # 磁盘使用 df -h # 负载平均值 uptime cat /proc/loadavg # 网络连接 ss -tunapl

CPU 优化

CPU 频率管理

# cpufrequtils 已废弃,改用 cpupower(随 linux-tools 提供) sudo apt install linux-tools-common linux-tools-generic # 查看当前 CPU 频率与调节器 cpupower frequency-info # 查看可用的频率调节器 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors # 设置为性能模式 sudo cpupower frequency-set -g performance # 设置为节能模式 sudo cpupower frequency-set -g powersave

桌面环境也可使用更高层的电源配置工具 power-profiles-daemon:

# 查看可用电源配置 powerprofilesctl list # 切换到性能模式 powerprofilesctl set performance

进程优先级

# 使用 nice 启动进程(-20 到 19,值越小优先级越高) nice -n 10 /path/to/task.sh # 修改运行中进程的优先级 renice -n 5 -p PID # 设置实时优先级 sudo chrt -f 50 /path/to/realtime-task # 绑定进程到特定 CPU 核心 taskset -c 0,1 /path/to/task.sh

内存优化

Swap 调优

# 查看当前 swap 使用情况 swapon --show free -h # 查看当前 swappiness 值(默认 60) cat /proc/sys/vm/swappiness

swappiness 参数说明:

值适用场景
0-10桌面系统 / 有充足内存的服务器,尽量少用 swap
30-40服务器通用场景
60默认值
80-100内存紧张的系统,积极使用 swap
# 临时修改 swappiness sudo sysctl vm.swappiness=10 # 永久修改 echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.d/99-performance.conf sudo sysctl --system

其他内存参数

# 缓存压力(默认 100,减小值可保留更多目录和 inode 缓存) echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.d/99-performance.conf # 脏页写回策略 echo "vm.dirty_ratio=15" | sudo tee -a /etc/sysctl.d/99-performance.conf echo "vm.dirty_background_ratio=5" | sudo tee -a /etc/sysctl.d/99-performance.conf # 应用所有修改 sudo sysctl --system

清理缓存

# 释放页面缓存 sudo sync; echo 1 | sudo tee /proc/sys/vm/drop_caches # 释放 dentry 和 inode 缓存 sudo sync; echo 2 | sudo tee /proc/sys/vm/drop_caches # 释放所有缓存 sudo sync; echo 3 | sudo tee /proc/sys/vm/drop_caches

I/O 调度器

查看和修改 I/O 调度器

# 查看当前 I/O 调度器 cat /sys/block/sda/queue/scheduler # 输出示例: [mq-deadline] kyber bfq none # 临时修改 echo "bfq" | sudo tee /sys/block/sda/queue/scheduler

I/O 调度器选择

调度器适用场景
mq-deadline通用场景,适合大多数 HDD 和 SSD
bfq桌面系统,提供更好的交互响应
kyber高性能 NVMe SSD
noneNVMe SSD 直接访问,最低延迟

持久化 I/O 调度器设置

创建 udev 规则:

sudo nano /etc/udev/rules.d/60-scheduler.rules
# HDD 使用 mq-deadline ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline" # SSD 使用 none 或 mq-deadline ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline" # NVMe 使用 none ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
sudo udevadm control --reload-rules

SSD 优化

启用 TRIM

TRIM 允许操作系统通知 SSD 哪些数据块不再使用,有助于维持 SSD 性能和延长寿命。

# 检查 SSD 是否支持 TRIM sudo hdparm -I /dev/sda | grep TRIM # 手动执行 TRIM sudo fstrim -v / # 查看定时 TRIM 服务 systemctl status fstrim.timer # 启用定时 TRIM(每周自动执行) sudo systemctl enable --now fstrim.timer

fstab 中的 SSD 优化选项

# 推荐的 SSD 挂载选项 UUID=xxxx / ext4 defaults,noatime,discard 0 1
选项说明
noatime不记录文件访问时间,减少写入
discard实时 TRIM(或使用 fstrim.timer 替代)
commit=60延长提交间隔,减少写入次数

减少不必要的磁盘写入

# 将 /tmp 挂载到内存 # 在 /etc/fstab 中添加: # tmpfs /tmp tmpfs defaults,noatime,size=2G 0 0 # 减少日志写入 sudo nano /etc/systemd/journald.conf # 设置: Storage=volatile (仅存内存,重启后丢失) # 或: SystemMaxUse=100M (限制日志大小)

网络优化

TCP 参数调优

sudo nano /etc/sysctl.d/99-network.conf
# TCP 缓冲区大小 net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216 # TCP 连接优化 net.ipv4.tcp_fastopen=3 net.ipv4.tcp_mtu_probing=1 net.ipv4.tcp_congestion_control=bbr # 连接队列 net.core.somaxconn=65535 net.core.netdev_max_backlog=65535 # TIME_WAIT 优化 net.ipv4.tcp_tw_reuse=1 net.ipv4.tcp_fin_timeout=15
# 启用 BBR 拥塞控制 echo "net.core.default_qdisc=fq" | sudo tee -a /etc/sysctl.d/99-network.conf echo "net.ipv4.tcp_congestion_control=bbr" | sudo tee -a /etc/sysctl.d/99-network.conf sudo sysctl --system # 验证 BBR 是否生效 sysctl net.ipv4.tcp_congestion_control

文件系统优化

ext4 优化

# 查看文件系统参数 sudo tune2fs -l /dev/sda2 # 减少预留空间(默认 5%,大分区可以减少) sudo tune2fs -m 1 /dev/sda2

文件描述符限制

# 查看当前限制 ulimit -n # 临时增加限制 ulimit -n 65535 # 永久修改 sudo nano /etc/security/limits.conf
# /etc/security/limits.conf * soft nofile 65535 * hard nofile 65535

系统级别:

echo "fs.file-max=2097152" | sudo tee -a /etc/sysctl.d/99-performance.conf sudo sysctl --system

启动优化

# 分析启动耗时 systemd-analyze # 查看各服务启动时间 systemd-analyze blame # 查看关键启动路径 systemd-analyze critical-chain # 禁用不需要的服务 sudo systemctl disable bluetooth.service # 不使用蓝牙 sudo systemctl disable cups.service # 不使用打印 sudo systemctl disable ModemManager.service # 不使用调制解调器 # 查看启动日志中的错误 journalctl -b -p err

性能基准测试

# 磁盘性能测试 sudo apt install fio # 顺序读取测试 fio --name=seqread --rw=read --bs=1M --size=1G --numjobs=1 --runtime=30 # 随机读写测试 fio --name=randreadwrite --rw=randrw --bs=4k --size=1G --numjobs=4 --runtime=30 # 简单的磁盘写入速度测试 dd if=/dev/zero of=/tmp/testfile bs=1M count=1024 oflag=direct # 内存带宽测试 sudo apt install sysbench sysbench memory run # CPU 基准测试 sysbench cpu --threads=$(nproc) run # 网络性能测试 sudo apt install iperf3 # 服务端: iperf3 -s # 客户端: iperf3 -c server_ip
Last updated on