温馨提示×

Linux K8s如何提升系统性能

小樊
46
2026-06-30 15:03:33
栏目: 智能运维

在 Linux 上的 Kubernetes(K8s)集群中提升性能,通常可以从 操作系统、K8s 本身、容器运行环境、网络、存储和资源调度 等多个层面入手。下面给你一个系统化的优化思路,偏向生产环境落地 ✅。


一、Linux 系统层性能优化

1. 内核参数调优(sysctl)

重点优化网络与内存:

# 临时生效
sysctl -w net.core.somaxconn=32768
sysctl -w net.ipv4.tcp_max_syn_backlog=32768
sysctl -w net.ipv4.ip_local_port_range="1024 65535"
sysctl -w vm.swappiness=0

常见优化项:

参数 作用
net.core.somaxconn 提高连接队列
tcp_max_syn_backlog TCP 半连接队列
ip_local_port_range 增加可用端口
vm.swappiness 减少 swap 使用
vm.overcommit_memory=1 Redis / 内存型应用

✅ 建议写入 /etc/sysctl.d/k8s.conf


2. 禁用 swap

K8s 强烈建议关闭 swap

swapoff -a
sed -i '/swap/d' /etc/fstab

否则会影响调度准确性与性能。


3. CPU & 内核调度优化

  • 使用 performance 模式:
cpupower frequency-set -g performance
  • 避免 CPU 频繁休眠

4. 文件系统

推荐:

  • ext4 / xfs
  • 挂载参数:
noatime,nodiratime

二、Kubernetes 层性能优化

5. kubelet 参数调优

--max-pods=110
--eviction-hard=memory.available<100Mi
--eviction-soft=memory.available<200Mi

说明:

  • 控制 Pod 数量
  • 避免节点 OOM

6. 合理设置 Request & Limit(非常重要)

必须设置

resources:
  requests:
    cpu: "100m"
    memory: "128Mi"
  limits:
    cpu: "500m"
    memory: "512Mi"

好处:

  • 避免资源争抢
  • 提高调度效率
  • 减少 OOM

7. QoS 与优先级

  • 使用 Guaranteed / Burstable
  • 避免 BestEffort 关键服务
priorityClassName: system-cluster-critical

三、网络性能优化

8. CNI 插件选择

推荐:

  • Calico(生产推荐)
  • Cilium(eBPF,高性能)

避免:

  • flannel(大规模性能一般)

9. MTU & 连接数优化

  • 调整 CNI MTU
  • 启用 conntrack 优化:
sysctl -w net.netfilter.nf_conntrack_max=131072

四、存储性能优化

10. 使用合适的 StorageClass

  • 本地盘(Local PV)> SSD > HDD
  • Ceph / NFS 慎用高并发
volumeMode: Filesystem

11. 减少不必要的 volume

  • 临时数据使用 emptyDir
  • 无状态服务不挂盘

五、容器运行时优化

12. containerd 优化

  • 使用 containerd 而非 docker
  • 关闭不必要的日志:
[plugins."io.containerd.grpc.v1.cri".containerd]
  discard_unpacked_layers = true

六、调度与架构优化

13. 节点亲和性 / 反亲和性

affinity:
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution: []

避免:

  • 关键 Pod 集中在一台机器

14. HPA / VPA

kubectl autoscale deployment app --min=2 --max=10 --cpu-percent=60

✅ 实现弹性扩容


七、监控与排障(性能闭环)

15. 必备监控工具

  • Prometheus + Grafana
  • metrics-server
  • node-exporter

重点指标:

  • CPU Throttle
  • OOM
  • 网络丢包
  • 磁盘 IO 等待

八、常见性能瓶颈速查表

现象 常见原因
Pod 启动慢 镜像大、存储慢
CPU 高但 QPS 低 限流、锁、GC
网络抖动 conntrack、MTU
OOM Request 设置不合理

九、一句话总结

Linux + K8s 性能优化的核心:资源可预测 + 避免资源争抢 + 减少不必要开销


如果你愿意,我可以:

  • ✅ 帮你 按节点规模给具体调优参数
  • ✅ 给你一份 生产环境 K8s 性能检查清单
  • ✅ 针对 高并发 / AI / Java / 微服务场景 专项优化

你现在集群规模多大?主要跑什么业务?

0