插件窝 干货文章 Linux性能优化知识点总结大全 · 实践+收藏版

Linux性能优化知识点总结大全 · 实践+收藏版

bash 优化 echo 性能 782    来源:    2025-04-13

Linux性能优化知识点总结大全

一、系统监控工具

1. 基础监控命令

  • top:实时监控系统进程和资源使用情况 bash top -d 1 -n 10 # 1秒刷新,运行10次
  • htop:增强版top,支持颜色和鼠标操作
  • vmstat:虚拟内存统计 bash vmstat 1 5 # 每秒1次,共5次
  • mpstat:CPU使用统计 bash mpstat -P ALL 1 # 监控所有CPU核心
  • iostat:磁盘I/O统计 bash iostat -dx 1 # 详细磁盘统计
  • free:内存使用情况 bash free -h -s 3 # 人类可读格式,每3秒刷新

2. 高级监控工具

  • dstat:全能系统资源统计工具 bash dstat -cdngy 1 # 监控CPU、磁盘、网络、内存等
  • sar:系统活动报告 bash sar -u 1 3 # CPU使用率 sar -r 1 3 # 内存使用
  • nmon:AIX/Linux性能监控工具 bash nmon -f -s 30 -c 120 # 每30秒采集一次,共120次

二、CPU优化

1. 性能分析

  • perf:Linux性能分析工具 bash perf top # 实时性能分析 perf stat -p <PID> # 进程统计 perf record -g -p <PID> # 记录调用图
  • strace:系统调用跟踪 bash strace -c -p <PID> # 统计系统调用

2. 优化策略

  • CPU绑定(taskset) bash taskset -c 0,1 ./program # 绑定到CPU0和1
  • 中断平衡(irqbalance) bash service irqbalance status
  • 调整CPU频率策略 bash cpupower frequency-set -g performance # 高性能模式

三、内存优化

1. 内存分析

  • pmap:进程内存映射 bash pmap -x <PID>
  • slabtop:内核slab缓存信息 bash slabtop -o # 按占用排序

2. 优化策略

  • 调整swappiness bash echo 10 > /proc/sys/vm/swappiness # 降低交换倾向
  • 透明大页(THP)优化 bash echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • OOM Killer调整 bash echo -17 > /proc/<PID>/oom_adj # 防止进程被OOM杀死

四、磁盘I/O优化

1. I/O分析工具

  • iotop:磁盘I/O监控 bash iotop -o # 只显示有I/O活动的进程
  • blktrace:块设备I/O跟踪 bash blktrace -d /dev/sda -o trace

2. 优化策略

  • I/O调度器选择 bash echo deadline > /sys/block/sda/queue/scheduler
  • 调整预读值 bash blockdev --setra 1024 /dev/sda
  • 文件系统优化 bash mount -o noatime,nodiratime,data=writeback /dev/sda1 /mnt

五、网络优化

1. 网络分析工具

  • iftop:实时带宽监控 bash iftop -n -i eth0
  • nethogs:按进程的网络流量 bash nethogs eth0
  • ss:socket统计 bash ss -s # 摘要统计 ss -tulnp # 监听端口

2. 优化策略

  • TCP参数优化 bash echo "net.ipv4.tcp_fin_timeout = 30" >> /etc/sysctl.conf echo "net.core.somaxconn = 4096" >> /etc/sysctl.conf sysctl -p
  • 网卡多队列 bash ethtool -l eth0 # 查看队列 ethtool -L eth0 combined 8 # 设置8个队列
  • 中断绑定 bash echo 1 > /proc/irq/<irq_num>/smp_affinity

六、内核参数优化

1. /proc/sys调整

  • 文件描述符限制 bash echo "fs.file-max = 655350" >> /etc/sysctl.conf
  • 内存分配策略 bash echo "vm.overcommit_memory = 1" >> /etc/sysctl.conf
  • 端口范围 bash echo "net.ipv4.ip_local_port_range = 1024 65000" >> /etc/sysctl.conf

2. 内核模块优化

  • 调整透明大页 bash echo never > /sys/kernel/mm/transparent_hugepage/enabled
  • 调整脏页比例 bash echo 10 > /proc/sys/vm/dirty_ratio

七、应用层优化

1. 数据库优化

  • MySQL配置优化 ini [mysqld] innodb_buffer_pool_size = 4G innodb_flush_log_at_trx_commit = 2
  • Redis配置优化 ini maxmemory 4gb maxmemory-policy allkeys-lru

2. Web服务器优化

  • Nginx优化 nginx worker_processes auto; worker_connections 10240; keepalive_timeout 65;
  • Apache优化 apache StartServers 8 MinSpareServers 5 MaxSpareServers 20

八、性能基准测试

1. 系统基准测试

  • sysbench:综合性能测试 bash sysbench cpu --cpu-max-prime=20000 run sysbench memory --memory-block-size=1K run
  • fio:磁盘I/O测试 bash fio --name=randread --ioengine=libaio --rw=randread --bs=4k --numjobs=4 --size=1G --runtime=60 --time_based --end_fsync=1

2. 网络基准测试

  • iperf3:网络带宽测试 bash iperf3 -s # 服务端 iperf3 -c <server_ip> -t 30 # 客户端
  • netperf:网络性能测试 bash netserver # 服务端 netperf -H <server_ip> -l 60 # 客户端

九、性能调优方法论

  1. USE方法(Utilization, Saturation, Errors)

    • 检查所有资源的利用率、饱和度和错误
  2. RED方法(Rate, Errors, Duration)

    • 适用于服务监控:请求率、错误率、持续时间
  3. 性能调优步骤

    • 建立性能基准
    • 识别瓶颈
    • 实施优化
    • 验证效果
    • 持续监控

十、常用性能优化脚本

1. 快速系统检查脚本

#!/bin/bash
echo "===== CPU Top 10 ====="
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -11
echo "===== Memory Top 10 ====="
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -11
echo "===== Disk Usage ====="
df -h
echo "===== Memory Usage ====="
free -h
echo "===== Load Average ====="
uptime

2. 网络连接统计脚本

#!/bin/bash
echo "===== TCP Connections ====="
ss -s | grep -A 10 "TCP:"
echo "===== Established Connections by IP ====="
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

总结

Linux性能优化是一个系统工程,需要: 1. 全面监控系统资源使用情况 2. 准确识别性能瓶颈 3. 有针对性地实施优化措施 4. 持续监控优化效果 5. 建立性能基准和预警机制

掌握这些工具和方法,能够有效提升Linux系统的性能和稳定性。建议收藏本指南,在实际工作中根据具体场景灵活应用。