OBD1007 显示ulimit太小

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】ulimt修改之后仍然报错???


我已经修改机器为130000了还是报错
图片

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

1 个赞

根据您提供的信息,您正在遇到 ulimit 设置问题,并且即使已经将 nproc 设置为了 130000,仍然收到了 OBD-1007 错误提示。这表明 ulimit 的配置仍然不满足 OceanBase 的要求。针对这种情况,您可以按照以下步骤来排查和解决问题:

  1. 确认修改是否生效:您可以通过执行 ulimit -a 命令来确认 max user processes 是否确实已经被设置为 130000。 [2]

  2. 检查配置文件:确保您已经正确修改了 /etc/security/limits.d/ 目录下的相关文件以及 /etc/security/limits.conf 文件,使得 nproc 的软限制(soft limit)和硬限制(hard limit)都被设置为 130000。 [1]

  3. 确认生产模式设置:如果您的环境是生产环境,那么 production_mode 应该被设置为 True,在这种情况下,max user processes 的值应该要满足一定的要求。如果是在测试环境中,您可以考虑将 production_mode 设置为 False 来避免严格的检查。 [1]

  4. 重启系统或会话:有时候修改了配置文件后需要重启系统或者至少重新登录 shell 以便让新的设置生效。 [2]

  5. 检查其他限制:除了 nproc 之外,还需要确保其他 ulimit 限制如 core file sizeopen filesstack sizevirtual memory 等也满足要求。 [2]

如果您已经按照以上步骤操作但问题依旧存在,可能是因为某些系统级别的限制阻止了更改生效,或者是有其他未知因素影响到了 ulimit 的设置。这种情况下,建议您联系 OceanBase 的技术支持团队获取进一步的帮助。

更多信息请查看:

  1. 错误码
  2. (可选)配置 limits.conf
1 个赞

1 个赞

您的问题可能存在误解,实际上据我所知,OBD-1007 错误通常意味着 ulimit 设置没有达到 OceanBase 的最低要求。然而,您提供的截图和 OCR 文本显示 UsePAM 的值为 yes,这可能是导致问题的原因之一。当 UsePAM 设置为 yes 时,SSH 服务会使用 PAM(Pluggable Authentication Modules)来进行认证,而 PAM 可能会对 ulimit 的设置产生影响。

解决方案

  1. 确认 UsePAM 设置

    • 您已经确认了 UsePAM 的值为 yes。这通常意味着 SSH 服务会依赖于 PAM 来处理认证和资源限制。[3]
  2. 修改 UsePAM 设置

    • 如果您不需要使用 PAM 认证,可以尝试将 UsePAM 设置为 no。这样 SSH 服务将不再依赖 PAM,而是直接使用系统级别的 ulimit 设置。
    • 修改 /etc/ssh/sshd_config 文件中的 UsePAM 设置:
      UsePAM no
      
    • 保存并重启 SSH 服务:
      sudo systemctl restart ssh
      
  3. 重新检查 ulimit 设置

    • 重新登录后,再次检查 ulimit 设置是否生效:
      ulimit -a
      
    • 确认 max user processes 是否为 130000 或更高。
  4. 确认其他 ulimit 设置

    • 确保其他 ulimit 限制如 core file sizeopen filesstack sizevirtual memory 等也满足要求。[2]
  5. 检查系统日志

    • 查看系统日志以了解是否有其他错误或警告信息:
      sudo journalctl -u ssh
      

如果以上步骤仍然不能解决问题,建议您联系 OceanBase 的技术支持团队获取进一步的帮助。此外,您还可以检查是否有其他系统级别的限制或配置问题影响了 ulimit 的设置。

具体信息可参考以下文档:

  1. 升级 OBShell
  2. 上传安装包
  3. 数据传输加密
  4. 通过图形化界面部署 OCP
  5. OBServer 传输加密
  6. 安装并配置 obd
  7. 使用 OceanBase 导数工具在 OceanBase 集群 MySQL 租户间迁移数据
  8. OBShell 接口调用说明
  9. oceanbase.CDB_OB_BACKUP_STORAGE_INFO_HISTORY

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

如何修改 max user processes的值为130000呢?

1 个赞

配置文件具有优先级,如下两步骤均需要查看,更改。

# 将此文件内的类似于如下行的改为如下即可。
# max user processes指的是如下的   nproc行。

vim /etc/security/limits.conf
*       soft    nofile  655350
*       hard    nofile  655350
*       soft    nproc  655350
*       hard    nproc  655350
*       soft    stack   unlimited
*       hard    stack   unlimited
*       soft    core    unlimited
*       hard    core    unlimited

# 另外记得注释这个文件内的第一行
#  # *          soft    nproc     4096
[root@ecs limits.d]# cat /etc/security/limits.d/20-nproc.conf 
# Default limit for number of user's processes to prevent
# accidental fork bombs.
# See rhbz #432903 for reasoning.

#*          soft    nproc     4096
root       soft    nproc     unlimited
1 个赞

使用 unlimit -a 确认下是否修改成功了,楼上素素老师所说的也是正确的,可以参考一下