linux资源限制cpu时间,Linux系统资源限制参考手册

Linux系统资源限制参考手册

Linux系统资源限制参考手册

适用系统环境

RHEL6

RHEL7

CentOS6

CentOS7

Linux系统资源限制方法

对系统中运行的用户进程设置资源限制有两种途径:

pam_limits.so模块。正常用户登录过程中将执行pam_limits.so模块,由用户启动的进程资源将受到pam_limits.so模块配置的影响,配置文件分别为:

/etc/security/limits.conf

/etc/security/limits.d/*.conf

systemd管理服务。在RHEL7、CentOS7以上版本的Linux系统中,由systemd管理的系统服务其资源限制配置在/usr/lib/systemd/system/目录中的服务配置文件里面,不受pam_limits.so模块的影响。

配置语法

参考文档man limits.conf

格式:(每一项间隔可以是空格或TAB制表符)

举例:

oracle soft nofile 65536

oracle hard nofile 65536

oracle soft nproc 102400

oracle hard nproc 102400

domain语法

用户名

用户组,如@group

用户ID或用户ID范围,如:

用户组ID或用户组ID范围,如@:

通配符*,代表所有Linux系统用户

通配置%,只适用于maxlogin限制项,%group代表名为group的用户组

type语法

hard,施行强制资源限制,简称硬限制

soft,施行软性资源限制,简称软限制

‘-’ 中横线(减号),代表同时施行强制和软性资源限制,是配置软硬限制数值一样时的简写方法

注意

如果type为'-',但缺少item和value字段内容,则用户或组将不再受到任何限制

声明

下文默认配置数值参考CentOS7 64位版本

item配置内容

core - limits the core file size (KB)

data - max data size (KB)

fsize - maximum filesize (KB)

memlock - max locked-in-memory address space (KB)

nofile - max number of open file descriptors

rss - max resident set size (KB)

stack - max stack size (KB)

cpu - max CPU time (MIN)

nproc - max number of processes

as - address space limit (KB)

maxlogins - max number of logins for this user

maxsyslogins - max number of logins on the system

priority - the priority to run user process with

locks - max number of file locks the user can hold

sigpending - max number of pending signals

msgqueue - max memory used by POSIX message queues (bytes)

nice - max nice priority allowed to raise to values: [-20, 19]

rtprio - max realtime priority

core配置说明

core配置项指的是core dump文件的大小限制,当用户进程由于某些信号退出时,将在进程的工作目录生成一个名为core的文件,可以用gdb debugger程序打开查看进程退出时的状态信息。默认值为0,即不生成core文件。

Core dump is a disk file that contains an image of a process’s memory at the moment of its termination, generated by the Linux kernel when processing some signals like SIGQUIT, SIGILL, SIGABRT, SIGFPE and SIGSEGV.

data配置说明

data配置data segment空间,默认为ulimited,单位KB。进程的data段包含静态变量和常量,以及进程启动不能初始化的heap segment,配置data项主要是为了避免进程申请过大的heap段空间。

fsize配置说明

限制用户创建超过指定大小的文件。默认为无限制,单位KB。

[oracle@dev ~]$ ulimit -f 20

[oracle@dev ~]$ ulimit -a

core file size (blocks, -c) 0

data seg size (kbytes, -d) unlimited

scheduling priority (-e) 0

file size (blocks, -f) 20

...

[oracle@dev ~]$ dd if=/dev/zero of=1.txt bs=1K count=10

10+0 records in

10+0 records out

10240 bytes (10 kB) copied, 0.000383234 s, 26.7 MB/s

[oracle@dev ~]$ dd if=/dev/zero of=1.txt bs=1K count=30

File size limit exceeded

memlock配置说明

允许用户最大锁定内存地址空间,单位KB,默认值64。

此限制允许进程锁定内存空间不被交换(paged out)。通常被数据库管理应用(如Oracle、Sybase)用于锁定部分内存,作为共享池空间使用,以便多个会话进程同时访问。

nofile配置说明

用户进程最大文件打开数量,默认为1024

rss配置说明

用户进程最大虚拟内存空间,默认为unlimited。内核版本2.4.30以上此配置无效

stack配置说明

用户进程的栈空间限制。单位KB,默认值8192。与data配置相似,某些大型应用(如DB)需要占用更大的堆栈空间,按需求配置即可

cpu配置说明

用户进程CPU时间限制,单位分钟。这里的CPU TIME指的是用户进程占用CPU的时间

[root@dev ~]# cat /etc/security/limits.conf

oracle - cpu 2

[oracle@dev ~]$ dd if=/dev/urandom of=/dev/null bs=1K count=20000000000000

Killed

nproc配置说明

用户进程数量限制,默认为4096

as配置说明

虚拟内存地址空间大小限制,默认为无限制,单位KB

[root@dev ~]# cat /etc/security/limits.conf

oracle - as 10240

[root@dev ~]# su - oracle

Last login: Thu Dec 17 13:47:30 CST 2020 on pts/3

\/usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory

/usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory

/usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory

-bash: warning: setlocale: LC_CTYPE: cannot change locale (en_US.UTF-8): No such file or directory

-bash: warning: setlocale: LC_COLLATE: cannot change locale (en_US.UTF-8): No such file or directory

-bash: warning: setlocale: LC_MESSAGES: cannot change locale (en_US.UTF-8): No such file or directory

-bash: warning: setlocale: LC_NUMERIC: cannot change locale (en_US.UTF-8): No such file or directory

-bash: warning: setlocale: LC_TIME: cannot change locale (en_US.UTF-8): No such file or directory

/usr/bin/id: error while loading shared libraries: libdl.so.2: failed to map segment from shared object: Cannot allocate memory

-bash: [: : integer expression expected

maxlogins配置说明

用户最大登录会话数

priority配置说明

用户进程初始nice值

[root@dev ~]# cat /etc/security/limits.conf

oracle - priority -1

[oracle@dev ~]$ ps ax -o user,pid,ni,cmd |grep oracle

root 40785 -1 su - oracle

oracle 40786 -1 -bash

oracle 40817 -1 ps ax -o user,pid,ni,cmd

oracle 40818 -1 grep --color=auto oracle

locks配置说明

允许用户锁定文件的最大数量,默认为无限制

sigpending配置说明

用户信号最大等待数量,默认为7184。这种pending通常由于访问I/O出现等待异常,用户进程处于不可中断休眠D(uninterruptible sleep)状态,所有发给进程的信号(sigterm, sigkill, sigstop, …)将处于pending状态

msgqueue配置说明

用户进程消息队列最大内存占用,单位Byte,默认为819200

nice配置说明

允许用户最高nice值限制,默认为0。取值范围-20~19

rtprio配置说明

用户实时进程最大优先级,范围1~99,99为最优先,默认为0。通过chrt命令可查看scheduling policy判断是否实时进程,SCHED_FIFO为实时进程,SCHED_OTHER为非实时进程

# chrt -p 5

pid 5's current scheduling policy: SCHED_FIFO

pid 5's current scheduling priority: 99

value语法

0或大于0的正整数

除nice和priority配置项以外,-1、unlimited、infinity代表无限制

FAQ常见问题

配置的优先级

用户ulimit命令自定义优先级别最高,但不能超出pam_limits.so配置中的限制

/etc/security/limits.d/目录中配置比/etc/security/limits.conf文件w优先级更高,将会覆盖/etc/security/limits.conf文件中相同的配置项

limits.conf文件中配置内容的生效时间

引用红帽官方回复 - https://access.redhat.com/solutions/61334

Exit and re-login from the terminal for the change to take effect.

配置生效机制是用户通过PAM验证登录过程中,调用了pam_limits.so库,使limits.conf文件的配置对当前登录的用户生效

避免通配符*滥用的建议

通配符*代表全部用户,包括root用户,在某些配置中可能会出现意外情况。如maxlogins,下面的配置导致root用户被限制10个以下登录会话

* - maxlogins 10

参考文档

标签:参考手册,limits,配置,用户,说明,Linux,oracle,限制,系统资源

来源: https://blog.csdn.net/cw03192/article/details/111316152

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值