linux ulimit设置 (linux如何配置nginx)

ulimit可配置参数列表

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

-c <core文件上限>:设定core文件的最大值,单位为区块;

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

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

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

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

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

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

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

-S:设定资源的弹性限制;

-t <cpu时间>:指定CPU使用时间的上限,单位为秒;

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

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

配置文件格式

/etc/security/limits.conf

#普通用户
centos soft nofile 100001
centos hard nofile 100002
#超级用户
root soft nofile 100001
root hard nofile 100002
#懒汉操作
#* soft nofile 100001
#* hard nofile 100002

ulimit仅做用到当前session的用户,即单用户范围级别。

Centos7版本 还有用户最大进程的限制独立配置文件,高并发的部署需要留意:

/etc/security/limits.d/20-nproc.conf

内核参数依赖配置(系统级别)

  • fs.file-max 在/proc/sys/fs/file-max 系统可打开的最大文件句柄数
  • fs.nr_open 在/proc/sys/fs/nr_open 单进程可打开的最大文件句柄数

额外检查

有时设置limits.conf文件,通过ssh登录操作系统时检查nofile仍然是默认的1024,检查/etc/pam.d/{system-auth,runuser,password-auth}文件,已正常包含pam_limits.so文件,那么检查/etc/sshd/sshd_config文件,是否开启UsePAM yes。