调整登录会话和资源限制,bash和csh的ulimit设置方法

本文介绍了如何查看和调整Bash与Csh shell的资源限制,包括查看软限制和硬限制,修改软限制如stacksize,并讨论了如maxproc、memoryuse和vmemoryuse等默认限制可能导致的问题及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查看软限制和硬限制

要查看会话中的软限制设置,请运行:

    对于csh: % limit
    对于bash: $ ulimit -a

 

下面的输出样本显示了PFE上的软限制设置。

对于csh:

% limit
cputime      unlimited
filesize     unlimited
datasize     4096000 kbytes
stacksize    300000 kbytes
coredumpsize unlimited
memoryuse    1024000 kbytes
vmemoryuse   unlimited
descriptors  1024
memorylocked unlimited
maxproc      400
maxlocks     unlimited
maxsignal    255403
maxmessage   819200
maxnice      0
maxrtprio    0
maxrttime    unlimited

 

对于bash:

$ ulimit -a
core file size          (blocks, -c) unlimited
data seg size           (kbytes, -d) 4096000
scheduling priority             (-e) 0
file size               (blocks, -f) unlimited
pending signals                 (-i) 255403
max locked memory       (kbytes, -l) unlimited
max memory size         (kbytes, -m) 1024000
open files                      (-n) 1024
pipe size            (512 bytes, -p) 8
POSIX message queues     (bytes, -q) 819200
real-time priority              (-r) 0
stack size              (kbytes, -s) 300000
cpu time               (seconds, -t) unlimited
max user processes              (-u) 400
virtual memory          (kbytes, -v) unlimited
file locks                      (-x) unlimited

 

要查看硬限制,请运行:

    对于csh: % limit -h
    对于bash: $ ulimit -Ha

 

修改软限制

要修改资源的软限制设置,请在limit(for csh)之后键入资源的名称,或在ulimit(for bash)之后键入选项。例如,要将stacksize限制重置为200,000 KB,请运行:

    对于csh: % limit stacksize 200000
    对于bash: $ ulimit -Ss 200000

 

默认限制的常见问题

以下列表描述了一些默认限制的常见问题。

  • stacksize堆栈大小)

    在PFE上,stacksize软限制设置为300,000 KB,因为某些绘图包(例如Tecplot)需要较小的堆栈大小才能正常运行。但是,如果在stacksize 运行应用程序时将其设置得太小,则通常会发生分段错误(段错误)。如果在同一会话中运行绘图包和您自己的应用程序,则需要相应地在小堆栈大小和大堆栈大小之间切换。

  • maxproc (最大用户流程)

    maxproc限制设置到400上的PFES(软)和600(硬)。在计算节点上,限制设置为100,000以上(大小因节点类型而异)。

    如果在PFE上遇到以下错误消息之一,则表示您已达到maxproc软限制:

    can't fork process
    or 
    fork: Resource temporarily unavailable

    这可能在编译期间发生,特别是如果您使用运行并行make操作make -j

    注意:每个Tecplot会话可以使用超过100个用户进程。如果在同一个PFE上运行多个Tecplot实例,则可能达到maxproc软限制。

  • memoryusevmemoryuse (最大内存大小和虚拟内存)

    大多数计算节点上的软限制memoryusevmemoryuse设置为unlimited。例外情况是:

    • 在PFE上,memoryuse设置为1 GB。
    • 在LDAN和Endeavor节点上,vmemoryuse设置为节点总物理内存的大约80%。

    vmemoryuse尝试分配内存时,该设置会影响结果 - 例如,当您使用以下allocate命令时:

    allocate (a(i),stat=ierror)

    memoryuse设置会影响参考array a。请记住,在具有不同设置的节点上运行应用程序将导致不同的行为。

  • coredumpsize (核心文件大小)

    对于PBS作业,coredumpsizeEndeavor 的软限制设置为0 KB; Pleiades,Electra和Merope计算节点的64 KB; LDAN为128 KB。这些默认设置旨在避免多个进程生成大型核心文件,因为核心文件可能占用节点的缓冲区缓存,等待刷新到磁盘; 如果节点上的缓冲区缓存没有被当前作业的PBS结尾和下一个作业的PBS序言刷新,则节点将无法使用。

    如果您需要核心文件来调试应用程序,请将coredumpsize软限制重置为大数,最多为unlimited

转载于:https://www.cnblogs.com/augusite/p/10718396.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值