麒麟系统中最大并发连接数由内核file-max值(cat /proc/sys/fs/file-max)决定,再受用户级ulimit -n限制;需通过systemd服务配置或/etc/security/limits.conf持久化提升。

在麒麟系统中排查服务承载瓶颈或评估系统连接能力时,需准确获知当前内核允许的最大并发连接数,该数值直接影响Web服务器、数据库等网络服务的并发上限。
查看系统级最大文件描述符限制(即理论最大并发数)
第一步:打开终端,执行命令:cat /proc/sys/fs/file-max。
该值代表内核可同时管理的文件句柄总数,是所有进程共享的硬上限,也是系统理论最大并发连接数的基准值。
第二步:确认当前生效值是否被临时修改过——运行 sysctl fs.file-max。若输出与第一步不一致,说明通过 sysctl -w 临时调整过,重启后会恢复默认。
第三步:检查该参数是否被持久化配置。执行 grep -r "fs.file-max" /etc/sysctl.conf /etc/sysctl.d/。如果返回结果为空,表示未做永久设置,系统每次启动都使用内核默认计算值(通常为内存页数的10%左右)。
查看当前用户级软硬限制(实际可用并发数)
在终端中直接运行:ulimit -n。
此命令显示当前 Shell 会话的文件描述符软限制,绝大多数网络服务默认受此值约束。
运行 ulimit -Hn 查看对应硬限制。
【注意:普通用户无法突破硬限制,只有 root 可用 ulimit -Hn 修改】
若该值远低于 /proc/sys/fs/file-max,则即使内核支持百万并发,单个服务进程也无法达到——必须先提升用户级限制。
方法一:通过 systemd 服务配置永久提升特定服务的并发能力
适用于 Nginx、Apache、PostgreSQL 等以 systemd 方式管理的服务。
1. 创建覆盖配置目录:sudo mkdir -p /etc/systemd/system/<em>服务名</em>.service.d(例如 nginx.service.d)。
2. 新建限制配置文件:sudo nano /etc/systemd/system/<em>服务名</em>.service.d/limits.conf,写入以下两行:[Service]LimitNOFILE=65536
3. 重载配置并重启服务:sudo systemctl daemon-reload && sudo systemctl restart <em>服务名</em>。
这一步将使该服务进程启动时自动获得指定数量的文件描述符配额,不受用户 shell 限制影响。
方法二:全局提升登录用户的 ulimit 值
适用于需要所有用户(含服务账户)默认获得更高并发能力的场景。
编辑 /etc/security/limits.conf,在末尾添加两行:* soft nofile 65536* hard nofile 65536
其中 * 表示所有用户,nofile 即文件描述符限制。
保存后,新建立的用户会话将自动应用该限制;已有会话需重新登录才生效。
【关键前提:确保 /etc/pam.d/common-session 中包含这一行 — session required pam_limits.so,否则 limits.conf 不生效】











