查看系统最大文件打开数量
#ulimit -n
#ulimit –u
1024
说明 server 只允许同时打开 1024 个文件,处理 1024个用户进程
使用ulimit -a 可以查看当前系统的所有限制值,使用ulimit -n 可以查看当前的最大打开文件数。
新装的linux 默认只有1024 ,当作负载较大的服务器时,很容易遇到error: too many open files。因此,需要将其改大。
解决方法:
使用 ulimit –n 65535 可即时修改,但重启后就无效了。(注ulimit -SHn 65535 等效 ulimit-n 65535 ,-S 指soft ,-H 指hard)
有如下三种修改方式:
1. 在/etc/rc.local 中增加一行 ulimit -SHn 65535
2. 在/etc/profile 中增加一行 ulimit -SHn 65535
3. 在/etc/security/limits.conf最后增加:
* soft nofile 65535
* hard nofile 65535
* soft nproc 65535
* hard nproc 65535
ulimit 命令本身就有分软硬设置,加-H 就是硬,加-S 就是软默认显示的是软限制
soft 限制指的是当前系统生效的设置值。 hard 限制值可以被普通用户降低。但是不能增加。 soft 限制不能设置的比hard 限制更高。 只有 root 用户才能够增加 hard 限制值。
worker_processes 表示nginx进程数,一般为cpu核心数量指定
worker_cpu_affinity 每个nginx进程分配到每个cpu核心上
worker_rlimit_nofile 一个nginx 进程打开的最多文件描述符数目
nginx系统使用epoll模型 ,不要使用select、poll标准事件模型
worker_connections 每个进程允许的最多连接数, 理论上每台nginx服务器的最大连接数为worker_processes*worker_connections
keepalive_timeout keepalive 超时时间
client_header_buffer_size 客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求头的大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小,分页大小可以用命令getconf PAGESIZE 取得
open_file_cachemax=65535 inactive=60s;
这个将为打开文件指定缓存,默认是没有启用的,max 指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。
延伸阅读