菜鸟科技网

Linux系统优化命令有哪些实用技巧?

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

Linux系统优化命令有哪些实用技巧?-图1
(图片来源网络,侵删)

系统监控与性能分析命令

在优化前,需先了解系统当前状态,监控工具是基础。

  1. top/htop:实时查看进程资源占用,top是传统工具,htop以彩色界面和交互操作更直观,通过P(按CPU排序)、M(按内存排序)快速定位高负载进程。
  2. vmstat:报告虚拟内存统计,如vmstat 1每秒输出一次,重点关注r(运行队列进程数)、free(空闲内存)、si/so(交换区读写),若si/so频繁,说明内存不足。
  3. iostat:监控磁盘I/O性能,使用iostat -x 1可查看设备利用率(%util)、服务时间(await)等指标,若%util持续高于70%,需检查磁盘性能或优化读写策略。
  4. free:查看内存使用情况,free -h以人类可读格式显示,关注buff/cacheavailable,避免系统过度使用交换空间(swap)。
  5. netstat/ss:分析网络连接,ss -tulnp显示监听端口及进程,netstat -s汇总网络协议统计,帮助定位网络瓶颈。

CPU与进程优化命令

CPU是系统核心资源,需合理分配进程优先级及亲和性。

  1. nice/renice:调整进程优先级,nice -n -10 command以高优先级运行进程(nice值-20~19,越小优先级越高),renice -n 5 PID修改已运行进程的优先级。
  2. taskset:绑定进程到特定CPU核心,减少上下文切换开销,如taskset -c 0-3 ./app将进程限制在前4个核心运行。
  3. cgroups:通过控制组限制资源,创建CPU限制组:mkdir /sys/fs/cgroup/cpu/mygroup,写入echo $$ > tasks将当前进程加入组,设置cpu.cfs_quota_us=50000(50%CPU配额)。
  4. kill/pkill:终止异常进程,kill -9 PID强制结束,pkill -f "进程名"按名称批量终止。

内存与缓存优化命令

内存不足会导致系统频繁换页,显著降低性能。

  1. echo 1 > /proc/sys/vm/swappiness:调整交换倾向(默认60),调低至10-20减少swap使用,但对内存敏感的系统需谨慎。
  2. drop_caches:手动释放页缓存,echo 1 > /proc/sys/vm/drop_caches(释放页缓存),echo 2 > /proc/sys/vm/drop_caches(释放dentries和inodes),适用于高负载后清理内存。
  3. sysctl:优化内核参数,如vm.swappiness=10写入/etc/sysctl.conf永久生效,或调整net.core.somaxconn(最大连接队列)提升并发处理能力。

磁盘与文件系统优化

磁盘I/O是常见瓶颈,需优化文件系统及挂载参数。

Linux系统优化命令有哪些实用技巧?-图2
(图片来源网络,侵删)
  1. df/du:检查磁盘空间,df -h按分区显示,du -sh *统计当前目录大小,快速定位大文件。
  2. mount:调整挂载选项,如挂载ext4文件系统时添加noatime(不更新访问时间),mount -o remount,noatime /,减少磁盘写操作。
  3. iotop:监控进程I/O,类似top但专注于磁盘读写,显示DISK READ/WRITE列,定位高I/O进程。
  4. fsck:文件系统检查,fsck -t ext4 /dev/sda1修复错误,但需在卸载状态下执行。

网络优化命令

网络性能影响服务响应速度,需优化带宽与连接管理。

  1. tc:流量控制,限制带宽:tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
  2. ethtool:调整网卡参数,ethtool -s eth0 speed 1000 duplex full强制全双工模式,关闭不必要中断:ethtool -C eth0 adaptive-rx off
  3. netfilter/iptables:防火墙规则优化,如iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 100 -j DROP限制80并发连接。

安全与日志优化

安全是优化的前提,日志管理可辅助故障排查。

  1. logrotate:自动轮转日志,/etc/logrotate.conf配置按大小或时间分割,避免日志占满磁盘。
  2. fail2ban:防暴力破解,监控日志并封禁IP,fail2ban-client banip 192.168.1.100
  3. chmod/chown:权限最小化,chmod 750 /script.sh限制脚本执行权限,chown -R user:group /data明确文件属主。

自动化与计划任务

通过定时任务定期优化,如每日清理日志、每周检查磁盘。

  1. 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上限,则需针对性优化,系统响应延迟增加、应用报错增多也是信号。

Linux系统优化命令有哪些实用技巧?-图3
(图片来源网络,侵删)

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

分享:
扫描分享到社交APP
上一篇
下一篇