Linux系统优化是提升服务器性能、稳定性和资源利用率的关键操作,通过合理的命令行工具可以对CPU、内存、磁盘、网络等多个维度进行调优,以下从系统监控、资源管理、性能调优及安全加固等方面,详细介绍常用的Linux系统优化命令及其实际应用场景。

系统监控与性能分析命令
在优化前,需先了解系统当前状态,监控工具是基础。
- top/htop:实时查看进程资源占用,
top
是传统工具,htop
以彩色界面和交互操作更直观,通过P
(按CPU排序)、M
(按内存排序)快速定位高负载进程。 - vmstat:报告虚拟内存统计,如
vmstat 1
每秒输出一次,重点关注r
(运行队列进程数)、free
(空闲内存)、si
/so
(交换区读写),若si
/so
频繁,说明内存不足。 - iostat:监控磁盘I/O性能,使用
iostat -x 1
可查看设备利用率(%util)、服务时间(await)等指标,若%util持续高于70%,需检查磁盘性能或优化读写策略。 - free:查看内存使用情况,
free -h
以人类可读格式显示,关注buff/cache
与available
,避免系统过度使用交换空间(swap)。 - netstat/ss:分析网络连接,
ss -tulnp
显示监听端口及进程,netstat -s
汇总网络协议统计,帮助定位网络瓶颈。
CPU与进程优化命令
CPU是系统核心资源,需合理分配进程优先级及亲和性。
- nice/renice:调整进程优先级,
nice -n -10 command
以高优先级运行进程(nice值-20~19,越小优先级越高),renice -n 5 PID
修改已运行进程的优先级。 - taskset:绑定进程到特定CPU核心,减少上下文切换开销,如
taskset -c 0-3 ./app
将进程限制在前4个核心运行。 - cgroups:通过控制组限制资源,创建CPU限制组:
mkdir /sys/fs/cgroup/cpu/mygroup
,写入echo $$ > tasks
将当前进程加入组,设置cpu.cfs_quota_us=50000
(50%CPU配额)。 - kill/pkill:终止异常进程,
kill -9 PID
强制结束,pkill -f "进程名"
按名称批量终止。
内存与缓存优化命令
内存不足会导致系统频繁换页,显著降低性能。
- echo 1 > /proc/sys/vm/swappiness:调整交换倾向(默认60),调低至10-20减少swap使用,但对内存敏感的系统需谨慎。
- drop_caches:手动释放页缓存,
echo 1 > /proc/sys/vm/drop_caches
(释放页缓存),echo 2 > /proc/sys/vm/drop_caches
(释放dentries和inodes),适用于高负载后清理内存。 - sysctl:优化内核参数,如
vm.swappiness=10
写入/etc/sysctl.conf
永久生效,或调整net.core.somaxconn
(最大连接队列)提升并发处理能力。
磁盘与文件系统优化
磁盘I/O是常见瓶颈,需优化文件系统及挂载参数。

- df/du:检查磁盘空间,
df -h
按分区显示,du -sh *
统计当前目录大小,快速定位大文件。 - mount:调整挂载选项,如挂载ext4文件系统时添加
noatime
(不更新访问时间),mount -o remount,noatime /
,减少磁盘写操作。 - iotop:监控进程I/O,类似
top
但专注于磁盘读写,显示DISK READ
/WRITE
列,定位高I/O进程。 - fsck:文件系统检查,
fsck -t ext4 /dev/sda1
修复错误,但需在卸载状态下执行。
网络优化命令
网络性能影响服务响应速度,需优化带宽与连接管理。
- tc:流量控制,限制带宽:
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
。 - ethtool:调整网卡参数,
ethtool -s eth0 speed 1000 duplex full
强制全双工模式,关闭不必要中断:ethtool -C eth0 adaptive-rx off
。 - netfilter/iptables:防火墙规则优化,如
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -j DROP
限制80并发连接。
安全与日志优化
安全是优化的前提,日志管理可辅助故障排查。
- logrotate:自动轮转日志,
/etc/logrotate.conf
配置按大小或时间分割,避免日志占满磁盘。 - fail2ban:防暴力破解,监控日志并封禁IP,
fail2ban-client banip 192.168.1.100
。 - chmod/chown:权限最小化,
chmod 750 /script.sh
限制脚本执行权限,chown -R user:group /data
明确文件属主。
自动化与计划任务
通过定时任务定期优化,如每日清理日志、每周检查磁盘。
- crontab:添加计划任务,
crontab -e
编辑,0 2 * * * /usr/bin/find /var/log -name "*.log" -mtime +7 -delete
删除7天前的日志。
相关问答FAQs
Q1: 如何判断Linux系统是否需要优化?
A1: 通过监控工具观察关键指标:若top
中CPU持续高于80%、内存free
值长期低于20%、iostat
中磁盘%util>70%或await
超过100ms,或网络连接数达到netstat -an
上限,则需针对性优化,系统响应延迟增加、应用报错增多也是信号。

Q2: 优化后如何验证效果?
A2: 优化前后对比监控数据:例如调整swappiness
后,观察vmstat
中si
/so
是否降低;磁盘挂载noatime
后,通过iostat
查看I/O等待时间是否减少,使用基准测试工具(如sysbench
)模拟负载,对比优化前后的QPS(每秒查询率)或响应时间,量化性能提升效果。