首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【教程】Ubuntu修改ulimit -l为unlimited

【教程】Ubuntu修改ulimit -l为unlimited

作者头像
小锋学长生活大爆炸
发布2025-05-31 15:41:19
发布2025-05-31 15:41:19
1K0
举报

问题描述

查系统资源限制

代码语言:javascript
复制
ulimit -l

如果返回的是 64 或其他较小值,那么RDMA等程序可能无法锁定足够内存,导致报错,应该设置为 unlimited

解决方法一

编辑 /etc/security/limits.conf:

代码语言:javascript
复制
sudo vim /etc/security/limits.conf

修改为以下内容:

代码语言:javascript
复制
* soft memlock unlimited
* hard memlock unlimited

解决方法二

如果方法一无效,可以尝试修改 PAM 限制配置:

代码语言:javascript
复制
sudo vim /etc/pam.d/common-session

确保里面 包含这一行(没有就加上):

代码语言:javascript
复制
session required pam_limits.so

然后再打开 /etc/pam.d/common-session-noninteractive,也加上这句。

代码语言:javascript
复制
sudo vim /etc/pam.d/common-session-noninteractive

然后重启机器 或 完整注销 + 重新登录。

不是重启 shell、不是 sudo su,是完整注销你的用户,或者 reboot 系统。 只有这样 PAM 的限制配置才会真正生效。

解决方法三 (终极)

这种方法是最可靠、跨版本 Linux 有效的方式,尤其适用于 Ubuntu/Debian 等不走 pam_limits 的情况。

1、编辑 system-wide 配置(对所有登录和服务生效):

代码语言:javascript
复制
sudo vim /etc/systemd/system.conf

找到这行:

代码语言:javascript
复制
#DefaultLimitMEMLOCK=

改为:

代码语言:javascript
复制
DefaultLimitMEMLOCK=infinity

2、同样编辑用户级配置(防止 user session 限制):

代码语言:javascript
复制
sudo vim /etc/systemd/user.conf

同样改为:

代码语言:javascript
复制
DefaultLimitMEMLOCK=infinity

3、保存后执行:

代码语言:javascript
复制
sudo systemctl daemon-reexec

4、然后重启系统:

代码语言:javascript
复制
sudo reboot
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • 问题描述
  • 解决方法一
  • 解决方法二
  • 解决方法三 (终极)
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档