这几天打开另一个网站频繁出现500错误,上VPS看nginx日志,错误主要有“No space left on device”和“24: Too many open files”。
现学现卖一个一个问题的解决:
No space left on device
看起来像是没有剩余空间了
- 执行“df -m”后,发现可用空间为0%
- 使用“du -sh /*”可以查看指定目录下哪个文件占用空间最大
- 一路追踪下去“du -sh /srv/www/*”发现nginx log文件占用了20多G。
- “tail -n 30 error.log”看下log最近到底报的是什么错,结果全是“24: Too many open files”
再来解决:
24: Too many open files
Linux系统对一个进程打开的文件句柄数量的限制,默认只有1024,并发高一点就达到这个限制了。
- “ulimit -a”可以看到当前的设置open files (-n) 1024
- 编辑“/etc/security/limits.conf”,在末尾加入“* soft nofile 65535”和“* hard nofile 65535”
- 编辑“/etc/nginx/nginx.conf”文件,加入“worker_rlimit_nofile 65535;”
搞定,重启nginx,观察几天看看。
目前没有留言,等您坐沙发呢!