Ubuntu优化之修改打开文件数上限ulimit值的方法

ulimit是linux系统限制软件可打开的最大文件句柄数量,每打开一个文件,每打开一个连接(如nginx的并发连接),都要消耗此值。如果软件打开的句柄数量超过硬件限制,是不安全的,会导致系统崩溃。因此linux中有这样一个限制值。

而ulimit的默认值一般是1024,完全不能满足需求,尤其是今天普遍电脑硬件都较高的情况。因此需要手动修改此值 

查看本机系统硬件限制:

sudo cat /proc/sys/fs/file-max

13157950

上面这个值根据你硬件不同,数值不一样。

查看当前用户限制:

sudo ulimit -n

1024

修改方法:

1、在文件 /etc/sysctl.conf 尾添加,此值最好不要达到系统上限值,因为系统本身运行还需要占用一部分。

fs.file-max = 655350

使此配置立即生效:

sysctl -p

2、在文件 /etc/security/limits.conf 尾添加

*        soft    nofile            655350

*        hard    nofile            655350

*        soft    nproc             655350

*        hard    nproc             655350

3、在文件 /etc/profile 尾添加

ulimit -SHn 655350

4、在文件 /etc/pam.d/common-session 尾添加

session required pam_limits.so

系统限制修改结束,重启系统后会生效。


如果你不想重启,使用以下命令可临时生效

ulimit -n 655350


如果你使用 nginx 则可以在nginx配置中修改 

events {

    worker_connections 655350;

    use epoll;

    multi_accept on;

}