当前位置:首页>Linux>Linux 性能优化与调优实战

Linux 性能优化与调优实战

  • 2026-10-11 05:45:44
Linux 性能优化与调优实战

Linux 性能优化与调优实战

一、性能优化方法论

  1. 测量 → 分析 → 调优 → 验证循环
  2. 瓶颈定位工具:
    • CPU:top、htop、mpstat、perf
    • 内存:free、vmstat、smem
    • 磁盘:iostat、iotop、fio
    • 网络:ss、iftop、nethogs、iperf
    • 综合:sysstat、dstat、sar
  3. 压测工具:ab、wrk、hey、sysbench、locust、k6
  4. 监控驱动:结合 Prometheus + Grafana 观察趋势,避免“感觉优化”

二、系统内核与基础参数优化

1. 内核参数(/etc/sysctl.conf)常用调优:

# 文件句柄
fs.file-max = 2097152
fs.nr_open = 2097152

# 网络
net.core.somaxconn = 65535
net.core.netdev_max_backlog = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_keepalive_time = 600
net.ipv4.ip_local_port_range = 1024 65535

# 内存
vm.swappiness = 10
vm.dirty_ratio = 15
vm.dirty_background_ratio = 5
vm.overcommit_memory = 1

# 其他
kernel.pid_max = 4194303

应用:sysctl -p

2. 资源限制(/etc/security/limits.conf):

* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535

3. CPU 调度与亲和性:

  • taskset 绑定进程到特定核心
  • cpupower 设置性能模式
  • 关闭不必要的 CPU 节能(生产高负载场景)

4. 磁盘与 IO:

  • 使用 SSD + 合适调度器(mq-deadline / none)
  • elevator 调整
  • 文件系统:XFS / ext4 挂载选项(noatime、nodiratime)
  • RAID / LVM 优化

三、Nginx 性能优化

  • worker_processes auto;
  • worker_connections 10240;
  • worker_rlimit_nofile 65535;
  • 开启 epoll、multi_accept
  • Gzip、缓存(proxy_cache)、HTTP/2
  • 静态资源 expires、sendfile、tcp_nopush
  • 限流限速防止雪崩
  • 上游 keepalive 连接复用

压测对比优化前后 QPS 与延迟。

四、MySQL / MariaDB 性能优化

  • InnoDB:innodb_buffer_pool_size(内存的 50%-70%)
  • innodb_log_file_size、innodb_flush_log_at_trx_commit
  • innodb_io_capacity 匹配磁盘能力
  • 慢查询日志 + EXPLAIN 优化 SQL
  • 索引设计、覆盖索引、避免 SELECT *
  • 连接池、读写分离
  • 分区表、归档历史数据

工具:pt-query-digest、mysqltuner、sysbench。

五、Redis 性能优化

  • maxmemory + 合理淘汰策略(allkeys-lru)
  • 避免大 Key、热 Key(拆分、本地缓存)
  • Pipeline、Lua 脚本减少网络往返
  • 持久化调优(AOF everysec + 重写)
  • 多线程 IO(Redis 6+)
  • 客户端连接池 + 合理超时

六、容器与 Kubernetes 性能优化

Docker:

  • 资源限制(--cpus、--memory)
  • 存储驱动(overlay2)
  • 镜像精简(多阶段构建)

Kubernetes:

  • 资源 requests / limits 合理设置
  • HPA(Horizontal Pod Autoscaler)
  • VPA、Cluster Autoscaler
  • 节点亲和性、污点容忍
  • CNI 网络优化(Cilium / Calico)
  • 存储类选择(本地 SSD vs 网络存储)
  • QoS 类(Guaranteed / Burstable)

七、监控驱动优化实践

结合 Prometheus 指标:

  • CPU 使用率、Load Average
  • 内存使用与换页
  • 磁盘 IOPS / 延迟
  • 网络带宽与重传
  • 应用 QPS、延迟 P99
  • 慢查询、缓存命中率

设定基线,持续观察,调优后验证。

八、生产案例与常见陷阱

案例:高并发电商系统优化
通过内核参数 + Nginx 缓存 + MySQL 索引优化 + Redis 集群 + K8s HPA,QPS 提升 3 倍,P99 延迟下降 60%。

常见陷阱:

  • 盲目增大参数导致内存耗尽
  • 忽略业务特性(读多写少 vs 写多)
  • 优化后未压测验证
  • 生产直接改参数无回滚方案

九、自动化与持续优化

  • Ansible 统一下发内核与配置
  • 结合 Prometheus 告警触发扩容
  • 定期压测 + 性能回归测试
  • 文档化调优记录与效果

最新文章

随机文章