ulimit命令参数及用法,调控文件汇报符

By admin in 新闻公告 on 2019年10月16日

原文地址:

ulimit命令参数及用法

linux下安装Oracle
一般都会修改/etc/security/limits.conf这个文件,但是这里面的具体含义未必每个人都会,刚开始我也不是很清除,只知道要修改,每次安装按照文档配置就可以了。今天看到一篇文章的介绍,特记录一下,加深一下理解。

 

linux limits.conf 配置 limits.conf 文件实际是 Linux
PAM(插入式认证模块,Pluggable Authentication Modules)中 pam_limits.so
的配置文件,而且只针对于单个会话。

功能说明:控制shell程序的资源。 

limits.conf的格式如下:

补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。 

username|@groupname type resource limit

参  数: 

username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

-a   显示目前资源限制的设定。 

type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard
表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 –
就表明同时设置了 soft 和 hard 的值。

-c   设定core文件的最大值,单位为区块。 

resource:

-d    <数据节区大小> 程序数据节区的最大值,单位为KB。 

core – 限制内核文件的大小

-f     <文件大小> shell所能建立的最大文件,单位为区块。 

date – 最大数据大小

-H  设定资源的硬性限制,也就是管理员所设下的限制。 

fsize – 最大文件大小

-m    <内存大小> 指定可使用内存的上限,单位为KB。

memlock – 最大锁定内存地址空间

-n     <文件数目> 指定同一时间最多可开启的文件数。

nofile – 打开文件的最大数目

-p     <缓冲区大小> 指定管道缓冲区的大小,单位512字节。

rss – 最大持久设置大小

-s     <堆叠大小> 指定堆叠的上限,单位为KB。

stack – 最大栈大小

-S  设定资源的弹性限制。 

cpu – 以分钟为单位的最多 CPU 时间

-t   指定CPU使用时间的上限,单位为秒。 

noproc – 进程的最大数目

-u    <程序数目> 用户最多可开启的程序数目。 

as – 地址空间限制

-v    <虚拟内存大小>  指定可使用的虚拟内存上限,单位为KB。

maxlogins – 此用户允许登录的最大数目

  www.2cto.com  

要使 limits.conf 文件配置生效,必须要确保 pam_limits.so
文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:

ulimit -a来查看所有限制值

session required /lib/security/pam_limits.so

 

按下面说的,可以用ulimit -n
32768设置最大描述符,不过只对当前会话有用,而且要root,这个不好办

01

或者修改/etc/security/limits.conf,但要重启

core file size          (blocks, -c) 0

另外,没查到linux究竟最大描述符有没有限制,其他几个限制要不要改

02

data seg size           (kbytes, -d) unlimited

如何限制和监视用户

03

PAM
大多数的LINUX都内建了PAM支持。PAM的一个功能是系统环境设置,例如设置某个用户允许使用的系统内存大小等。在Red
Hat和Caldera这

scheduling priority             (-e) 0

两个发行版本的 /etc/security/ 目录下包含了许多可配置文件。最有趣的当属
/etc/security/limits.conf 文件,它允许你定义用户或用户

04

组规则,规则是“软(soft)”或“硬(hard)”,规则的内容(如CPU、内存、最大文件大小等)。例如:

file size               (blocks, -f) unlimited

*    hard    core    0

05

bob    soft    nproc    100

pending signals                 (-i) 256590

bob    hard    nproc    150

06

第一行规则禁止所有人产生core文件,第二行规则(软)定义用户bob的最大进程数为100,
第三行规则(硬)定义用户bob的最大进程数为150

max locked memory       (kbytes, -l) 64

。可以超出软规则的限制(警告),但不
能超过硬规则的限制。你可以想像得到,这些规则定义到所有用户的登录SHELL和FTP等服务
时是很

07

有帮助的。

max memory size         (kbytes, -m) unlimited

Bash

08

Bash内建了一个限制器”ulimit”。注意任何硬限制都不能设置得太高,因此如果你在/etc/profile或用户的
.bash_profile (用户不能编辑或

open files                      (-n) 1024

删除这些文件)中定义了限制规则,你就能对用户的Bash
shell实施限制。这对于缺少PAM支持的LINUX旧发行版本是很有用的。你还必须确保

09

用户不能改变他们的登录shell。限制的设置与PAM相似。例如:

pipe size            (512 bytes, -p) 8

ulimit –Sc 0

10

ulimit –Su 100

POSIX message queues     (bytes, -q) 819200

ulimit –Hu 150

11

real-time priority              (-r) 0

Ulimit命令

12

设置限制    
可以把命令加到profile文件里,也可以在/etc/security/limits.conf文件中定义

stack size              (kbytes, -s) 10240

限制。

13

命令参数

cpu time               (seconds, -t) unlimited

-a      显示所有限制

14

-c      core文件大小的上限

max user processes              (-u) 80920

-d      进程数据段大小的上限

15

-f      shell所能创建的文件大小的上限

virtual memory          (kbytes, -v) unlimited

-m     驻留内存大小的上限

16

-s      堆栈大小的上限

file locks                      (-x) unlimited

-t      每秒可占用的CPU时间上限

 

-p     管道大小

使用命令ulimit -HSn 65536可以立即生效.

-n     打开文件数的上限

 

-u     进程数的上限

ulimit -u 80920 在centos 6.2不能立即生效,还需要修改

-v     虚拟内存的上限

 

除可用Ulimit命令设置外,也可以在/etc/security/limits.conf文件中定义限制。

vim /etc/security/limits.d/90-nproc.conf     原因应该是新特性

domino type item value

  www.2cto.com  

domino是以符号@开头的用户名或组名,*表示所有用户,type设置为hard or
soft。item指

1

定想限制的资源。如cpu,core nproc or maxlogins

# Default limit for number of user’s processes to prevent

。value是相应的限制值。

2

# accidental fork bombs.

Unix、Linux下常用监控和管理命令工具

3

检查编写的程序打开的文件数。   

# See rhbz #432903 for reasoning.

  sysctl:显示(或设置)系统内核参数   

4

  sysctl -a 显示所有内核参数  

 

  sysctl -w 参数名=参数值   

5

  例如:sysctl -w fs.file-max=10240
设置系统允许同时打开的最大文件数为10240。   

*          soft    nproc     80920

  内核参数fs.file-nr包括三个参数值,第一个参数表示系统中曾经同时打开过的文件数峰值,
  

  

  第二个参数表示空闲(分配后已释放)的文件数,   

注:/etc/security/limits.conf  

  第三个参数表示可以打开的最大文件数,其值等于fs.file-max。   

  www.2cto.com  

  当前打开的文件数 = 第一个参数值 – 第二个参数值   

limits.conf的工作原理: 

  例如:   

  limits.conf的后端是这样工作的:limits.conf是pam_limits.so的配置文件,然后/etc/pam.d/下的应用程序调用pam_***.so模块。譬如说,当用户访问服务器,服务程序将请求发送到PAM模块,PAM模块根据服务名称在/etc/pam.d目录下选择一个对应的服务文件,然后根据服务文件的内容选择具体的PAM模块进行处理。

  fs.file-nr = 977 223 10240   

limits.conf的格式

  当前打开的文件数 = 977 – 233 = 744   

01

  设置内核参数时务必小心,如果设置不当会导致系统异常,甚至当机。
  

#<domain> can be:

  ulimit:显示(或设置)用户可以使用的资源限制   

02

  ulimit -a 显示用户可以使用的资源限制   

#        – an user name

  ulimit unlimited
不限制用户可以使用的资源,但本设置对可打开的最大文件数(max open files)
  

03

  和可同时运行的最大进程数(max user processes)无效   

#        – a group name, with @group syntax

  ulimit -n <可以同时打开的文件数>
设置用户可以同时打开的最大文件数(max open files)

04

  例如:ulimit -n 8192   

#        – the wildcard *, for default entry

  如果本参数设置过小,对于并发访问量大的网站,可能会出现too many open
files的错误   

05

  ulimit -u <可以运行的最大并发进程数>
设置用户可以同时运行的最大进程数(max user processes)   

#        – the wildcard %, can be also used with %group syntax,

  例如:ulimit -u 1024 

06

#          for maxlogin limit

IBM JVM for Linux on POWER 的性能调优技巧

07

用户限制设置

设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。

为了获得最佳性能,让运行 JVM
进程的用户拥有经过正确配置的用户设置是很重要的。这些参数可以设置成以下两种形式之一:

08

暂时地,适用于通过 ulimit 命令登录 shell 会话期间。

#<type> can have the two values:

永久地,通过将一个相应的 ulimit 语句添加到由登录 shell
读取的文件之一(例如 ~/.profile),即特定于 shell 的用户资源文件;或者

09

通过编辑 /etc/security/limits.conf。

#        – “soft” for enforcing the soft limits

建议设置成无限制(unlimited)的一些重要设置是:

10

数据段长度:ulimit –d unlimited

#        – “hard” for enforcing hard limits

最大内存大小:ulimit –m unlimited

11

堆栈大小:ulimit –s unlimited

hard 表明系统中所能设定的最大值。soft 的限制不能比hard 限制高。
www.2cto.com  

CPU 时间:ulimit –t unlimited

12

虚拟内存:ulimit –v unlimited

#<item> can be one of the following:

对于需要做许多套接字连接并使它们处于打开状态的 Java
应用程序而言,最好通过使用 ulimit –n,或者通过设置

13

/etc/security/limits.conf 中的 nofile
参数,为用户把文件描述符的数量设置得比默认值高一些。

#        – core – limits the core file size (KB)

提高 Oracle 用户的 shell 限制

14

/etc/security/limits.conf

           core – 限制内核文件的大小

oracle soft nproc 2047

15

oracle hard nproc 16384

#        – data – max data size (KB)

oracle soft nofile 1024

16

oracle hard nofile 65536

           date – 最大数据大小

/etc/pam.d/login

17

session required /lib/security/pam_limits.so

#        – fsize – maximum filesize (KB)

/etc/profile

18

if [ $USER = “oracle” ]; then

           fsize – 最大文件大小

if [ $SHELL = “/bin/ksh” ]; then

19

ulimit -p 16384

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

ulimit -n 65536

20

else

           memlock – 最大锁定内存地址空间

ulimit -u 16384 -n 65536

21

fi

#        – nofile – max number of open files

fi

22

           nofile – 打开文件的最大数目

23

#        – rss – max resident set size (KB)

24

           rss – 最大持久设置大小

25

#        – stack – max stack size (KB)

26

           stack – 最大栈大小

27

#        – cpu – max CPU time (MIN)

28

           cpu – 以分钟为单位的最多 CPU 时间

29

#        – nproc – max number of processes

30

           noproc – 进程的最大数目

31

#        – as – address space limit (KB)

32

           as – 地址空间限制

33

#        – maxlogins – max number of logins for this user

34

           maxlogins – 此用户允许登录的最大数目

35

#        – maxsyslogins – max number of logins on the system

36

#        – priority – the priority to run user process with

37

#        – locks – max number of file locks the user can hold

38

#        – sigpending – max number of pending signals

39

#        – msgqueue – max memory used by POSIX message queues (bytes)

40

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

41

#        – rtprio – max realtime priority

42

#

43

#<domain>      <type>  <item>         <value>

44

#

45

 

46

#*               soft    core            0

47

#*               hard    rss             10000

48

#@student        hard    nproc           20

49

#@faculty        soft    nproc           20

50

#@faculty        hard    nproc           50

51

#ftp             hard    nproc           0

52

#@student        –       maxlogins       4

53

 

54

# End of file

55

mysql                soft    core            2048000

56

mysql                hard    core            2048000

57

mysql                soft    nofile          819200

58

mysql                hard    nofile          819200

如果遇到“段错误”(segmentation
fault)这样的问题,这主要就是由于Linux系统初始的堆栈大小(stack
size)太小,可以使用ulimit  -s

  www.2cto.com  

core – 限制内核文件的大小 

  何谓core文件,当一个程序崩溃时,在进程当前工作目录的core文件中复制了该进程的存储图像。core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。
core文件是个二进制文件,需要用相应的工具来分析程序崩溃时的内存映像。 

 

nofile -打开文件的最大数目 

  对于需要做许多套接字连接并使它们处于打开状态的应用程序而言,最好通过使用
ulimit –n,或者通过设置nofile
参数,为用户把文件描述符的数量设置得比默认值高一些

 

功能说明:控制shell程序的资源。
补充说明:ulimit为shell内建指令,可用来控制shell执行程序的资源。 参 数:
-a 显示…

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图
Copyright @ 2010-2019 大奖888网页版登陆 版权所有