在使用MPI时遇到了资源受限的报错RLIMIT_MEMLOCK too small
这是由于shell默认的资源不足造成的
可以使用ulimite命令解决

1.Ulimite

遇到RLIMIT_MEMLOCK too small报错主要是由于默认设置的资源不足以完成指令,特别是在MPI运行多个线程时会出现这样的问题,根据提示来修改当前shell所需要的资源大小。首先可以利用ulimite -a查看当前默认分配的资源:

>>> ulimit -a
>>>
ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 7220
max locked memory       (kbytes, -l) 64    <<<<<这里就是报错的位置
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 7220
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

我们看到报错的位置locked memory只有64k,需要放大这个资源限制:

# 直接设成不受限
ulimit -l unlimited
# 再查看结果
>>> ulimit -a
>>>core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) unlimited
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 772787
max locked memory       (kbytes, -l) unlimited    <<<<<<已经修改成不受限
max memory size         (kbytes, -m) unlimited
open files                      (-n) 1000000
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 10240
cpu time               (seconds, -t) unlimited
max user processes              (-u) 772787
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

2.shell资源管理

此外可以利用ulimit -h查看更多使用请看

> ulimit --help
> >>
Syntaxulimit [-abcdefHilmnpqrsStTuvx] [limit]Key-S   Set a soft limit for the given resource.-H   Set a hard limit for the given resource.-a   All current limits are reported.-b   The maximum socket buffer size.-c   The maximum size of core files created. -d   The maximum size of a process's data segment.-e   The maximum scheduling priority ("nice") -f   The maximum size of files created by the shell(default option).-i   The maximum number of pending signals.-l   The maximum size that can be locked into memory. -m   The maximum resident set size. -n   The maximum number of open file descriptors. -p   The pipe buffer size.-q   The maximum number of bytes in POSIX message queues.-r   The maximum real-time scheduling priority.-s   The maximum stack size. -t   The maximum amount of cpu time in seconds.-T   The maximum number of threads.-u   The maximum number of processes available to a single user.-v   The maximum amount of virtual memory available to the process.-x   The maximum number of file locks.# from:https://ss64.com/bash/ulimit.html

ref:ulimit, 详解1, 详解2,原始解决方法,修改core文件大小, shell详细资源管理,detail,其他资源管理方法



pic from pexels.com

【shell资源限制】RLIMIT_MEMLOCK too small相关推荐

  1. Linux 命令之 ulimit 命令-控制shell程序的资源

    文章目录 介绍 常用选项 参考示例 介绍 用来限制系统用户对 shell 资源的访问.如果不懂什么意思,下面一段内容可以帮助你理解: 假设有这样一种情况,当一台 Linux 主机上同时登陆了 10 个 ...

  2. 关于shell脚本编程一些有用资源的小结

    系统维护管理过程中,编写一些能减轻管理负担的shell脚本是个明智的做法,一些例程性的事务,shell脚本会比手动操作高效的多.我有时也要编写一些,总结了一些学习及参考的shell资料,实用好用为主, ...

  3. shell的嵌入命令大全

    围绕以下几点展开学习: 1.什么是shell的嵌入命令? 2.为什么使用shell? 3.怎样使用shell嵌入命令? 1.什么是shell的嵌入命令: ♦这些命令是在实际的Bourne shell里 ...

  4. Shell脚本学习-阶段二十七-命令解释三

    文章目录 前言 quyotastats repquota convertquota swapoff swapon sync chroot getent last lastb lastlog logro ...

  5. linux 可运行的最大 线程 进程 数

    cat /proc/sys/kernel/threads-max 查系统支持的最大线程数,一般会很大,相当于理论值 该命令在不同的机器上 值不一样. 在centos 服务器上面 : 513845 在u ...

  6. linux如何运行用户程序,Linux系统下,如何以其他用户身份运行程序

    #1:runuser命令 runuser命令使用一个替代的用户或者组ID运行一个Shell.这个命令仅在root用户时有用. 仅以会话PAM钩子运行,并且没有密码提示.如果用一个非root用户,并且该 ...

  7. 【Linux】一步一步学Linux——ulimit命令(218)

    00. 目录 文章目录 00. 目录 01. 命令概述 02. 命令格式 03. 常用选项 04. 参考示例 05. 总结 06. 附录 01. 命令概述 ulimit命令用来限制系统用户对shell ...

  8. Puppet 命令参数介绍(三)

    Puppet 命令参数介绍 前言: Puppet的工作原理: puppet master启动默认是监听tcp协议的8140端口.通过ruby的webrick web接收agent端的请求,根据请求内容 ...

  9. MySQL CPU性能定位

    墨墨导读:经常会看到看到cpu 使用率非常高的情况.在这种情况下,资源的使用监控分析才是性能故障分析的根本首要任务,通过这些分析,理解服务器如何运行,资源损耗在哪些方面对问题进行故障诊断是非常有价值有 ...

最新文章

  1. AFNetWorking 队列请求
  2. dubbo自定义异常传递信息丢失问题解决
  3. python 之 collections
  4. OpenCV使用dnn重新着色灰度图像的实例(附完整代码)
  5. 文献记录(part7)--An Improved Biclustering Algorithm and Its Application to Gene Expression ...
  6. 陪我长大的村,镇,学校和家乡
  7. 程序员面试金典 - 面试题 17.12. BiNode(BST中序遍历)
  8. Iterator(迭代器)遍历Collection集合元素
  9. “王者对战”之 MySQL 8 vs PostgreSQL 10
  10. java连接ftp一直阻塞
  11. 风向风速传感器原理及应用
  12. Hexo/Github.io 配置腾讯云CDN
  13. Python读取scel文件
  14. 5G无线接入网架构及关键技术
  15. 原生js页面滚动顶部显示滚动总进度条效果
  16. 对于电商尺码跟颜色组成的表格输入框,对输入框的操作
  17. 有效处理Java异常三原则
  18. Eureka工作原理(Eureka简介Eureka ServerEureka Client自我保护机制分布式系统中的CAP理论Eureka 工作流程)
  19. lyapunov直接法
  20. andy学java系列之J2ME的移动支付系统的设计与实现

热门文章

  1. 右键文件夹电脑卡死?
  2. np.unique( )--去除数组中的重复数字,并进行排序之后输出
  3. Python os.walk() 方法--输出在目录中的文件名
  4. 抓住那只喵(HTML5-神经猫)
  5. android view过度动画,为View的切换添加过渡动画
  6. Mybatis(15)Mybatis延迟加载/缓存
  7. filezilla:阿里云 win10 服务器文件传输(上传和下载)的配置教程
  8. IE浏览器兼容性处理与提示
  9. 易优cms红色风格春节年货礼品公司网站模板源码
  10. 支付宝五福53张自动领取程序 v2021