转载请注明出处:小锋学长生活大爆炸[xfxuezhagn.cn]
如果本文帮助到了你,欢迎[点赞、收藏、关注]哦~
目录
问题描述
解决方法一
解决方法二
解决方法三 (终极)
问题描述
查系统资源限制
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=infinity
2、同样编辑用户级配置(防止 user session 限制):
sudo vim /etc/systemd/user.conf
同样改为:
DefaultLimitMEMLOCK=infinity
3、保存后执行:
sudo systemctl daemon-reexec
4、然后重启系统:
sudo reboot