调整登录会话和资源限制,bash和csh的ulimit设置方法
查看软限制和硬限制
要查看会话中的软限制设置,请运行:
对于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软限制。
- memoryuse和vmemoryuse (最大内存大小和虚拟内存)
大多数计算节点上的软限制memoryuse和vmemoryuse设置为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。