针对Docker CentoS Stream9内核和文件描述符优化

针对Docker CentoS Stream9内核和文件描述符优化

文章目录

      • 一、文件描述符优化(解决 "too many open files")
        • 1. 系统级文件描述符限制(永久生效)
        • 2. 用户级文件描述符限制(永久生效)
        • 3. Docker 服务级限制(关键!Systemd 管理的服务需单独配置)
        • 4. 验证文件描述符优化生效
      • 二、内核参数优化(适配 Docker 运行需求)
        • 生效内核参数并验证
      • 三、Docker 自身配置优化(daemon.json)
        • 生效 Docker 配置并验证
      • 四、额外优化(针对 CentOS Stream 9 特性)
        • 1. 启用 cgroup v2(推荐,CentOS 9 原生支持)
        • 2. SELinux 兼容优化(CentOS 9 默认启用 SELinux)
        • 3. 防火墙优化(开放 Docker 相关端口)
      • 五、优化验证与监控
        • 1. 验证 Docker 运行状态
        • 2. 监控关键指标(生产环境推荐)
      • 总结

针对CentOS Stream 9 + Docker的内核与文件描述符优化,核心目标是解决高并发、大流量场景下的资源限制(如文件描述符不足、网络连接阻塞、存储性能瓶颈),同时适配 CentOS Stream 9 的新内核特性(默认 5.x+ 内核,原生支持 overlay2 存储驱动、cgroup v2 等)。

以下是分模块、可直接落地的优化方案:

一、文件描述符优化(解决 “too many open files”)

Docker 守护进程、容器进程会占用大量文件描述符(默认系统限制 1024,远远不够),需从系统级、用户级、Docker 服务级三层调高限制。

1. 系统级文件描述符限制(永久生效)

修改/etc/sysctl.conf配置系统全局最大文件描述符:

# 编辑系统内核参数文件vim/etc/sysctl.conf# 添加以下内容(fs.file-max 是系统总限制,建议设为 100 万+)fs.file-max=