在麒麟系统中需分三步查资源限制:先用ulimit -a看当前会话软限制;再查/etc/security/limits.conf及pam启用状态确认全局硬限制;最后用systemctl show/edit调整systemd服务专属限制。

在麒麟操作系统中准确查看系统资源限制,是排查应用启动失败、数据库初始化异常或服务崩溃问题的关键前提,必须区分当前会话限制与全局持久配置。
查看当前终端会话的全部资源限制
打开终端,直接执行:
ulimit -a
该命令一次性输出当前shell及其子进程所受的所有软限制(soft limit),包括堆栈大小、打开文件数、虚拟内存、数据段大小等。注意:此结果不反映系统级硬限制(hard limit),也不代表其他用户或systemd服务的取值。
若需单独查看某一项,例如堆栈限制,运行
检查系统级硬限制与全局默认策略
方法一:读取limits.conf配置文件
用root权限打开/etc/security/limits.conf:
sudo vim /etc/security/limits.conf
查找包含
方法二:验证PAM模块是否启用limits
执行:
grep -r "pam_limits.so" /etc/pam.d/
若输出中包含common-session或common-auth中的pam_limits.so行,说明limits.conf配置已被激活;若无任何输出,则该文件修改无效。
确认systemd服务的实际生效限制
systemd托管的服务不继承limits.conf,其限制由service单元文件控制。以nginx为例:
第一步:查看服务当前加载的LimitSTACK值
sudo systemctl show nginx.service | grep LimitSTACK
第二步:若需修改,执行
sudo systemctl edit nginx.service
第三步:在编辑器中输入以下内容并保存:
[Service]
LimitSTACK=67108864
第四步:重载配置并重启服务
sudo systemctl daemon-reload → sudo systemctl restart nginx
这一步操作后,LimitSTACK才真正作用于nginx主进程,且单位为字节而非KB。











