快捷搜索:

您的位置:澳门新葡4473网站 > 澳门新葡4473网站 > ulimit命令参数及用法

ulimit命令参数及用法

发布时间:2019-10-16 00:23编辑:澳门新葡4473网站浏览(66)

    原文地址:

    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 显示...

    本文由澳门新葡4473网站发布于澳门新葡4473网站,转载请注明出处:ulimit命令参数及用法

    关键词:

上一篇:用CRT查找内存泄漏

下一篇:没有了