路漫漫其修远兮
吾将上下而求索

高并发问题:打开文件数相关

nginx报错日志

2018/01/21 22:41:10 [crit] 9208#0: accept4() failed (24: Too many open files)
2018/01/21 22:42:16 [crit] 9206#0: accept4() failed (24: Too many open files)
2018/01/21 22:42:16 [alert] 9206#0: *199062671 socket() failed (24: Too many open files) while connecting to upstream

使用下面命令查看打开文件数

 #lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr| head
  6444 nginx
    294 zabbix_ag
    268 httpre.py
    153 sshd
    144 migration
     72 watchdog/
     72 kthrotld/
     72 ksoftirqd
     72 kintegrit
     55 snmpd

需考虑的方面

nginx配置设置增大打开文件数

worker_rlimit_nofile   30000;

系统方面

vi /etc/sysctl.conf
追加或者修改下面的行:
fs.file-max = 70000
保存并关闭文件,编辑 /etc/security/limits.conf, 键入:
vi /etc/security/limits.conf
像下面这样为所有用户或者nginx用户设置软硬限制:
nginx   soft   nofile   10000
nginx   hard  nofile   30000
保存并关闭,最后重新载入sysctl命令,以使以上改变生效:
sysctl -p

参考文档:

http://nginx.org/en/docs/ngx_core_module.html#worker_rlimit_nofile

http://www.cnblogs.com/sxlfybb/archive/2011/09/15/2177983.html

http://blog.csdn.net/lastsweetop/article/details/6440136

未经允许不得转载:江哥架构师笔记 » 高并发问题:打开文件数相关

分享到:更多 ()

评论 抢沙发

评论前必须登录!