linux进程资源限制


概念:

1.进程的资源限制通常是在系统初始化时有0进程建立,然后由每个后续进程继承,其中一些资源可以用getrlimitsetrlimt函数查询和更改

2.在更改资源限制时,须遵守下列三条规则

(1)任何一个进程都可将一个软限制值更改为小于或等于其硬限制值。

(2)任何一个进程都可减低其硬限制值,但它必须大于或等于其软限制值,这种减低对普通用户而言是不可逆的。

(3)只有超级用户才可以提高硬限制值。

3.资源限制影响到调用进程并由其子进程进程。这意味着为了影响一个用户的所有后续进程,需将资源限制的设置构造在shell之中,Bourne shell、GUN Bourne-agina shell、Korn shell具有内置的ulimit命令,C shell具有内置的limit命令


4.系统对资源限制的支持

linux进程资源限制_第1张图片


RLIMIT_AS:进程可用存储区的最大总长度(字节),这会影响sbrk函数和mmap函数
RLIMIT_COREcore文件的最大字节数,若其值为0则阻止创建core文件
RLIMIT_CPUCPU时间的最大量值数(秒),当超过此软限制,向该进程发送SIGXCPU信号
RLIMIT_DATA:数据段的最大字节长度,就是初始化数据、非初始以及堆的总和
RLIMIT_FSIZE:可以创建的文件的最大字节长度。当超过此软限制,则向该进程发送SIGXFSZ信号
RLIMIT_LOCKS:一个进程可持有的文件锁的最大数
RLIMIT_MEMLOCK:一个进程使用mlock能够锁定在存储器中的最大字节数
RLIMIT_NOFILE:每个进程能打开的最大文件数。更改此限制将影响到sysconf函数在参数_SC_OPEN_MAX返回的值
RLIMIT_NPROC:每个实际用户ID可拥有的最大子进程数。更改此限制将影响到sysconf函数在参数_SC_CHILD_MAX返回的值
RLIMIT_RSS:最大驻内存集的字节长度。如果物理存储器供不应求,则内核将从进程处取回超过RSS的部分
RLIMIT_SBSIZE:用户在任一给定时刻可以占用的套接字缓冲区的最大长度
RLIMIT_STACK:栈的最大字节长度
RLIMIT_VMEM:这个是RLIMIT_AS的同义词


参考:《unix环境高级编程》

你可能感兴趣的:(linux,进程资源)