linux limits研究

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

一、

 

soft nproc 与 soft nofile

cat >>/etc/security/limits.conf<<eof
* soft nproc 65535
* hard nproc 65535
* soft nofile 65535
* hard nofile 65535

eof

soft nproc: 可打开的文件描述符的最大数(软限制)

hard nproc: 可打开的文件描述符的最大数(硬限制)

soft nofile:单个用户可用的最大进程数量(软限制)

hard nofile:单个用户可用的最大进程数量(硬限制)

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

二、

在Linux下面部署应用的时候,其实Linux是有文件句柄限制的,而且默认不是很高,一般都是1024,作为一台生产服务器,其实很容易就达到这个数量,因此我们需 要把这个值改大一些。
这里,有很多ulimit的文章都说的很含糊,究竟这个1024 是系统的限制,还是用户的限制呢。其实,这个是用户限制来的,完整的说法,应该是当前用户准备要运行的程序的限制。
 
1、这个限制是针对单个程序的限制
2、这个限制不会改变之前已经运行了 的程序的限制
3、对这个值的修改,退出了当前的shell就会消失
 
比如说,我先运行了一个程序A,然后 通过ulimit修改了限制为2048,然后运行B,然后退出了shell再登录,然后运行C。那就只有B可以打开2048个句柄。
其中一个方法,是想ulimit修改命令放入/etc/profile 里面,但是这个做法并不好
正确的做法,应该是修改/etc/security/limits.conf
 
那系统总限制呢===========>
其实是在这里,/proc/sys/fs/file-max
可以通过cat查看目前的 值,echo来立刻修改

另外还有一个,/proc/sys/fs/file-nr
只读,可以看到整个系统目前使用的文 件句柄数量
 
查找文件句柄问题的时候,还有一个很 实用的程序lsof
可以很方便看到某个进程开了那些句柄
也可以看到某个文件/目录被什么进程 占用了

临时生效配置命令=============>ulimit -HSn 65535

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

三、

linux limits.conf 配置

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

  limits.conf的格式如下:
  username|@groupname type resource limit
  username|@groupname:设置需要被限制的用户名,组名前面加@和用户名区别。也可以用通配符*来做所有用户的限制。
  type:有 soft,hard 和 -,soft 指的是当前系统生效的设置值。hard 表明系统中所能设定的最大值。soft 的限制不能比har 限制高。用 - 就表明同时设置了 soft 和 hard 的值。
  resource:
  core - 限制内核文件的大小
  date - 最大数据大小
  fsize - 最大文件大小
  memlock - 最大锁定内存地址空间
  nofile - 打开文件的最大数目
  rss - 最大持久设置大小
  stack - 最大栈大小
  cpu - 以分钟为单位的最多 CPU 时间
  noproc - 进程的最大数目
  as - 地址空间限制
  maxlogins - 此用户允许登录的最大数目
  要使 limits.conf 文件配置生效,必须要确保 pam_limits.so 文件被加入到启动文件中。查看 /etc/pam.d/login 文件中有:
  session required /lib/security/pam_limits.so
 
例如:修改文件描述符大小(65536)
vi  /etc/security/limits.conf
 
*                               soft    nofile  65536
*                               hard    nofile  65536

----------------------------------------------------------------------------------------------------------------------------------------------------------------------

原文地址:https://www.cnblogs.com/itcomputer/p/4709789.html