我的.cshrc设置了一个“limit datasize 256000”,但是我的几个正在运行的进程当前超过了这个。例如:
VmPeak: 496840 kB
VmSize: 496840 kB
VmLck: 0 kB
VmHWM: 463408 kB
VmRSS: 463408 kB
VmData: 451552 kB
VmStk: 96 kB
VmExe: 7480 kB
VmLib: 35548 kB
VmPTE: 988 kB
StaBrk: 0a2bb000 kB
Brk: 19c90000 kB
StaStk: ffd4f010 kB
我曾经以为这个过程在遇到这个限制时会失败,但显然没有发生。所以我不确定数据量限制在做什么。我错过了什么吗?
由于这是在.cshrc中设置的,因此这意味着它仅限于该会话。我想这些进程必须在不同的会话下运行,因此不受该限制的约束。
—
Mutmansky 2014年
在不同的会话下运行不是问题。我在线阅读了一些其他文件,暗示数据大小并不是内核实际执行的,或者分配给进程的内存的初始大小足够大,以至于brk()或sbrk()实际上没有从内存中获取更多内存。操作系统因此从不执行限制的强制执行点。仍然不确定这里到底发生了什么。
—
Mutmansky 2014年