Linux性能调优提升整机运行速度
很多刚接触服务器的朋友会感觉 Linux 系统默认配置偏保守——它优先保证兼容性和稳定性,而不是榨干每一分性能。
如果你的 VPS 或云主机跑业务时经常卡顿,或者你只是想让个人电脑响应更快,本文会带你从几个关键入口做一次 Linux性能调优提升整机运行速度。
整个过程不需要深厚的内核知识,所有命令都可以直接复制执行。
调优前先检查这些硬件信息
动手之前,先摸清服务器的底细,避免调优方向跑偏。
执行以下两个命令:
lscpu—— 查看 CPU 核心数、架构和频率。free -h—— 查看内存总量和已用量。df -h—— 查看磁盘分区和剩余空间。ulimit -n—— 查看当前进程可打开的最大文件数(默认通常是 1024,太小)。
重点:如果可用内存不足 2G,盲目调优内核参数反而可能让系统更慢;
如果磁盘使用率超过 90%,首先扩容或清理文件。
这些前置检查能让后续的 Linux性能调优 有的放矢。
调整 CPU 调度策略与进程优先级
场景:你的业务对响应延迟敏感(比如 Web 服务器),或者频繁出现 CPU 软中断飙高。
这时可以切换 CPU 调度器并调整进程优先级。
- 查看当前 CPU 调度器:
cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor或通过cpupower frequency-info。 - 临时切换到性能模式(对大多数场景最有利):
sudo cpupower frequency-set -g performance
如果想永久生效,编辑 /etc/default/cpufrequtils 或使用 systemd 服务(具体看发行版)。
- 调整进程优先级(nice 值):例如你的 Java 进程 PID 为 1234,想让它获得更多 CPU 时间,可以:
sudo renice -10 -p 1234
nice 值范围 -20(最高优先级)到 19(最低)。注意:不要在系统已满载时把关键进程调太高,否则会饿死其他进程。
避坑:如果你使用虚拟化平台(如 KVM、Xen),多数虚拟机的 CPU 调度器实际由宿主机控制,cpupower 命令可能无效果。
此时应联系宿主调优或改用其他方法。
内存与缓存参数微调
场景:内存充足但 swap 频繁使用,或者大文件读写效率低。
- 降低 swappiness 值(控制系统倾向于使用物理内存还是交换分区):
sudo sysctl vm.swappiness=10
永久写入 /etc/sysctl.conf:vm.swappiness = 10。
一般服务器建议 10~30,桌面可以 60。
- 调整缓存回收策略:
vm.vfs_cache_pressure默认 100,如果频繁访问大量小文件,可以降低到 50:
sudo sysctl vm.vfs_cache_pressure=50
- 查看大页内存是否开启:
grep HugePages /proc/meminfo。如果你的数据库或 Java 服务需要大页,按发行版文档配置透明大页或静态大页。对新手来说,不要随意动大页,容易造成内存浪费。
效果验证:执行 free -h 查看 swap 使用量是否下降;
执行 cat /proc/meminfo | grep -E '^(SwapTotal|SwapFree)' 计算使用率。
磁盘 I/O 与文件系统优化
场景:大量小文件读写(如日志、Web 静态资源),或者数据库频繁随机 I/O。
- 检查磁盘调度器:
cat /sys/block/sda/queue/scheduler(通常有 noop、deadline、cfq)。推荐 noop 或 deadline 用于虚拟化环境和 SSD。临时切换:
echo 'noop' | sudo tee /sys/block/sda/queue/scheduler
永久修改可通过 udev 规则或 grub 参数,详见发行版文档。
- 调整文件系统挂载选项(针对 ext4):
noatime—— 不记录访问时间,减少写磁盘负载。nodiratime—— 同上,针对目录。
编辑 /etc/fstab,在对应行的 options 字段添加,例如:defaults,noatime,nodiratime。
- 磁盘写缓存:大部分机械硬盘默认开启写缓存(
hdparm -W1 /dev/sda),不建议关闭。但对于家用 SSD,可以检查是否开启了 TRIM 并定期执行fstrim -v /。
避坑:修改 /etc/fstab 前务必备份,语法错误会导致系统无法启动。
可以用 findmnt --verify 检查。
网络与内核参数极简优化
场景:高并发网络连接(如 Nginx、Node.js 服务)。
- 临时调整最大文件描述符(解决
too many open files):
sudo sysctl -w fs.file-max=500000
sudo sysctl -w net.core.somaxconn=65535
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65535
永久写入 /etc/sysctl.conf。
- 启用 TCP 快速打开:
net.ipv4.tcp_fastopen = 3,对短连接场景有轻微加速。 - 增大网络缓冲区:
sudo sysctl -w net.core.rmem_max=16777216
sudo sysctl -w net.core.wmem_max=16777216
一般不建议调太大,否则内存占用高。
验证:使用 ulimit -n 确认文件数限制;
使用 ss -s 查看当前连接数。
如何验证调优后的整机运行速度
- 综合负载测试:用
stress模拟 CPU 和内存压力,同时top观察响应:
sudo apt install stress # Ubuntu
stress --cpu 4 --timeout 30
- 磁盘性能:
dd if=/dev/zero of=~/test bs=1M count=1024统计写入速度,调优后应该有 10%~30% 提升(视硬件)。 - 网络延迟:本地
ping -c 10 127.0.0.1看平均值,正常是微秒级;对远端用iperf3测试吞吐量。 - 整体感受:如果是在线业务,观察
top中%wa(等待 I/O)是否下降,以及nginx或mysql的响应时间日志是否有改善。
如果你在操作中遇到参数不生效、系统无响应等问题,先回顾上面的避坑说明。
大多数情况是因为内核没有开启对应的模块(如 cpufreq),或者虚拟机权限不足。
一个稳妥的原则是:每次只改一个参数,验证后再改下一个。
这样即使出问题也能快速回滚。
完成这套 Linux性能调优提升整机运行速度 步骤后,你的服务器应该会有可感知的流畅度提升。
当然,具体效果取决于硬件、负载类型和原有配置。
欢迎在评论区分享你的优化结果!