linux服务器大并发调优时,往往需要预先调优linux参数,其中修改linux最大文件句柄数是最常修改的参数之一。
在linux中执行ulimit -a 即可查询linux相关的参数,如下所示:
[[email protected] ~]# ulimit -a
open files (-n) 1024
默认情况下,linux最大文件句柄数为1024个。当你的服务器在大并发达到极限时,就会报出“too many open files”。
那么如何修改linux最大文件句柄数呢?其实很简单:
1、临时生效方法
这命令就可以修改linux最大文件句柄数,修改以后使用ulimit -a 查看修改的状态,如:
[[email protected] ~]# ulimit -n 65536
[[email protected] ~]# ulimit -a
open files (-n) 65536
[[email protected] ~]# ulimit -n
65536
但是,这种方法只针对当前进程有效。重新打开一个shell或者开启一个进程,你就会发现参数还是ulimit -n xx修改之前的数字。
2、修改linux系统参数。vi /etc/security/limits.conf 添加
* soft nofile 65536
* hard nofile 65536
注:"*"表示对所有用户生效,如果只需要对某个用户生效,只需要将"*"改为某个用户名。
修改以后保存,注销当前用户,重新登录,执行ulimit -a ,ok ,参数生效了:
[[email protected] ~]# ulimit -a
open files (-n) 65536
注:
硬限制表明soft限制中所能设定的最大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。
可以最大设到:
655350