
查系统资源限制
ulimit -l如果返回的是 64 或其他较小值,那么RDMA等程序可能无法锁定足够内存,导致报错,应该设置为 unlimited。
编辑 /etc/security/limits.conf:
sudo vim /etc/security/limits.conf修改为以下内容:
* soft memlock unlimited
* hard memlock unlimited如果方法一无效,可以尝试修改 PAM 限制配置:
sudo vim /etc/pam.d/common-session确保里面 包含这一行(没有就加上):
session required pam_limits.so然后再打开 /etc/pam.d/common-session-noninteractive,也加上这句。
sudo vim /etc/pam.d/common-session-noninteractive然后重启机器 或 完整注销 + 重新登录。
不是重启 shell、不是
sudo su,是完整注销你的用户,或者reboot系统。 只有这样 PAM 的限制配置才会真正生效。
这种方法是最可靠、跨版本 Linux 有效的方式,尤其适用于 Ubuntu/Debian 等不走 pam_limits 的情况。
1、编辑 system-wide 配置(对所有登录和服务生效):
sudo vim /etc/systemd/system.conf找到这行:
#DefaultLimitMEMLOCK=改为:
DefaultLimitMEMLOCK=infinity2、同样编辑用户级配置(防止 user session 限制):
sudo vim /etc/systemd/user.conf同样改为:
DefaultLimitMEMLOCK=infinity3、保存后执行:
sudo systemctl daemon-reexec4、然后重启系统:
sudo reboot