本文目录导读:

- 临时或永久修改 /etc/fstab
- 在 /dev/sda1 / ext4 defaults 后加上 noatime,nodiratime
- 变成 /dev/sda1 / ext4 defaults,noatime,nodiratime 0 1
- 然后重新挂载
在Linux端进行优化操作,通常需要结合系统监控工具找到瓶颈,然后针对CPU、内存、磁盘I/O、网络以及内核参数进行调优。
以下是一份分步操作指南,涵盖常用工具和具体命令:
第一步:诊断与监控(找到瓶颈)
这是优化前最重要的一步,不要盲目优化,先用工具看清现状。
-
查看整体负载:
# 最常用,查看负载、CPU、内存、进程 top # htop 是 top 的增强版,更直观(需安装) htop
-
CPU 分析:
# 查看 CPU 使用率和每个核心的情况 mpstat -P ALL 1 # 找出占用 CPU 最多的进程 ps -eo pid,ppid,%cpu,%mem,cmd --sort=-%cpu | head -10
-
内存分析:
# 查看内存使用总量、缓存、交换分区 free -h # 查看进程级内存占用 top 然后按 M(大写)
-
磁盘 I/O 分析:
# 查看磁盘读写速度、I/O 等待时间(await),这是排查磁盘瓶颈的核心工具 iostat -x 1 # 实时追踪哪个进程在疯狂读写磁盘 iotop
-
网络分析:
# 查看实时网络流量 nload # 或 iftop # 查看连接数、端口状态 ss -tuln # 或旧的 netstat -tuln
第二步:常见优化操作
CPU 优化
-
调整进程优先级:让重要的任务获得更多CPU时间。
# 启动时指定优先级(-20最高,19最低) nice -n -10 ./my_important_task # 对已经在运行的进程调整优先级 renice -n -10 -p <PID>
-
CPU 频率调节(在服务器上通常设为
performance,笔记本可设为ondemand省电):# 查看当前模式 cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor # 临时设置为性能模式(需要 root) echo performance | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor # 永久设置通常需要编辑 /etc/default/cpufrequtils 或使用 tuned-adm
内存优化
-
清理缓存:Linux会占用空闲内存做缓存,如果应用急需内存,通常会自动释放,如果你确定需要强制释放:
# 清空 pagecache(谨慎使用) sudo sync && echo 1 > /proc/sys/vm/drop_caches # 清空 dentries 和 inodes sudo sync && echo 2 > /proc/sys/vm/drop_caches # 清空所有缓存(pagecache + dentries + inodes) sudo sync && echo 3 > /proc/sys/vm/drop_caches
注意:
drop_caches只释放内核缓存,不会杀死进程,但频繁操作可能导致性能下降。 -
调整 Swap 使用倾向:降低系统使用交换分区的倾向(数值越小,越倾向于使用物理内存)。
# 查看当前值(默认60) cat /proc/sys/vm/swappiness # 临时调低到10(对于物理内存很大的机器,可以设置为10甚至0) sudo sysctl vm.swappiness=10 # 永久生效(写入 /etc/sysctl.conf) echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
磁盘 I/O 优化
-
改变 I/O 调度算法:SSD 通常用
noop或none(NVMe),机械硬盘用deadline。# 查看当前调度器 cat /sys/block/sda/queue/scheduler # 临时修改(将 sda 替换为你的磁盘名) echo 'none' | sudo tee /sys/block/sda/queue/scheduler # 永久修改:通过 grub 添加参数,或使用 udev 规则
-
调整文件系统挂载参数:
noatime:不记录文件访问时间(最常用,显著减少写操作)。nodiratime:不记录目录访问时间。# 查看当前挂载参数 mount | grep /dev/sda1
临时或永久修改 /etc/fstab
在 /dev/sda1 / ext4 defaults 后加上 noatime,nodiratime
变成 /dev/sda1 / ext4 defaults,noatime,nodiratime 0 1
然后重新挂载
sudo mount -o remount /
网络优化
-
调整 TCP 参数(改善高延迟或高并发场景):
# 临时修改 sudo sysctl -w net.core.somaxconn=65535 # 永久写入 /etc/sysctl.conf echo "net.core.somaxconn=65535" | sudo tee -a /etc/sysctl.conf # 常见的网络优化集合(注意:这些值需要根据你的硬件和场景调整) net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 15 net.core.rmem_max = 16777216 net.core.wmem_max = 16777216
注:
tcp_tw_recycle在 NAT 环境下已废弃且可能引起问题,不要使用。
综合/自动调优工具类
如果你不想手动调每个参数,可以使用系统级调优工具:
-
Tuned(最推荐):Red Hat/Fedora/CentOS 提供,Ubuntu也可安装。
# 安装 sudo apt install tuned # Debian/Ubuntu sudo yum install tuned # RHEL/CentOS # 启用守护进程 sudo systemctl enable --now tuned # 查看推荐的配置 sudo tuned-adm recommend # 应用配置(如针对吞吐量优化) sudo tuned-adm profile throughput-performance # 或针对网络延迟优化 sudo tuned-adm profile network-latency # 查看当前配置 sudo tuned-adm active
-
cpupower:电源管理。
# 设置所有核心为性能模式 sudo cpupower frequency-set -g performance
第三步:使优化生效
- 临时生效:使用
sysctl命令或echo ... > /proc/...,系统重启后失效。 - 永久生效:将参数写入
/etc/sysctl.conf文件。# 修改完成后应用配置并检查 sudo sysctl -p
重要提醒:
- 不要在不知道意义的情况下修改内核参数:某些参数(如
vm.overcommit_memory)会直接影响系统稳定性。 - 测试环境先行:在生产环境修改前,务必在测试环境验证。
- 监控变化:修改后使用
top、iostat、vmstat观察指标是否向预期方向优化。 - 重启不是银弹:大多数优化是实时的或通过
mount -o remount生效,重启是为了验证永久配置的正确性。
如果你能告诉我你具体想解决什么问题(网站响应慢、数据库磁盘I/O高、网络延迟大、编译时CPU满载),我可以给出更针对性的操作步骤。
标签: Linux端优化工具