澳门威尼斯人注册网址【官网首页】
做最好的网站

ulimit命令参数及用法,内核参数

来源:http://www.ogcoffee123.com 作者:操作系统 人气:112 发布时间:2019-11-06
摘要:原文地址: ulimit命令参数及用法 Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux用户的最大进程数 可以用ulimit -a 来显示当前的各种用户

原文地址:

ulimit命令参数及用法

Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数
可以用ulimit -a 来显示当前的各种用户进程限制。

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

 

下面我把某linux用户的最大进程数设为10000个:
ulimit -u 10240
对于需要做许多 socket 连接并使它们处于打开状态的 Java 应用程序而言,
最好通过使用 ulimit -n xx 修改每个进程可打开的文件数,缺省值是 1024。
ulimit -n 4096 将每个进程可以打开的文件数目加大到4096,缺省为1024
其他建议设置成无限制(unlimited)的一些重要设置是:
数据段长度:ulimit -d unlimited
最大内存大小:ulimit -m unlimited
堆栈大小:ulimit -s unlimited
CPU 时间:ulimit -t unlimited
虚拟内存:ulimit -v unlimited
ulimit -c unlimited
  
暂时地,适用于通过 ulimit 命令登录 shell 会话期间。
永久地,通过将一个相应的 ulimit 语句添加到由登录 shell 读取的文件中, 即特定于 shell 的用户资源文件,如:
1)、解除 Linux 系统的最大进程数和最大文件打开数限制:
vi /etc/security/limits.conf
# 添加如下的行
* soft noproc 11000
* hard noproc 11000
* soft nofile 4100
* hard nofile 4100
说明:* 代表针对所有用户,noproc 是代表最大进程数,nofile 是代表最大文件打开数
2)、让 SSH 接受 Login 程式的登入,方便在 ssh 客户端查看 ulimit -a 资源限制:
a、vi /etc/ssh/sshd_config
把 UserLogin 的值改为 yes,并把 # 注释去掉
b、重启 sshd 服务:
/etc/init.d/sshd restart
3)、修改所有 linux 用户的环境变量文件:
vi /etc/profile
ulimit -u 10000
ulimit -n 4096
ulimit -d unlimited
ulimit -m unlimited
ulimit -s unlimited
ulimit -t unlimited
ulimit -v unlimited
保存后运行#source /etc/profile 使其生效
/**************************************
有时候在程序里面需要打开多个文件,进行分析,系统一般默认数量是1024,(用ulimit -a可以看到)对于正常使用是够了,但是对于程序来讲,就太少了。

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

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

修改2个文件。

limits.conf的格式如下:

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

1./etc/security/limits.conf
vi /etc/security/limits.conf
加上:

username|@groupname type resource limit

参  数: 

  • soft nofile 65536
  • hard nofile 65536
    //有时需要加
  • soft noproc 65536
  • hard noproc 65536
  • soft nofile 65536
  • hard nofile 65536

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

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

2./etc/pam.d/login
session required /lib/security/pam_limits.so
/**********
另外确保/etc/pam.d/system-auth文件有下面内容
session required /lib/security/$ISA/pam_limits.so
这一行确保系统会执行这个限制。

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

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

/***********

resource:

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

3.一般用户的.bash_profile

core - 限制内核文件的大小

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

ulimit -n 1024

重新登陆ok

linux

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

本文由澳门威尼斯人注册网址发布于操作系统,转载请注明出处:ulimit命令参数及用法,内核参数

关键词:

上一篇:没有了

下一篇:没有了

频道精选

最火资讯