since.2006  

这几天打开另一个网站频繁出现500错误,上VPS看nginx日志,错误主要有“No space left on device”和“24: Too many open files”。

现学现卖一个一个问题的解决:
No space left on device
看起来像是没有剩余空间了
  1. 执行“df -m”后,发现可用空间为0%
  2. 使用“du -sh /*”可以查看指定目录下哪个文件占用空间最大
  3. 一路追踪下去“du -sh /srv/www/*”发现nginx log文件占用了20多G。
  4. “tail -n 30 error.log”看下log最近到底报的是什么错,结果全是“24: Too many open files”

再来解决:
24: Too many open files
Linux系统对一个进程打开的文件句柄数量的限制,默认只有1024,并发高一点就达到这个限制了。

  1. “ulimit -a”可以看到当前的设置open files (-n) 1024
  2. 编辑“/etc/security/limits.conf”,在末尾加入“* soft nofile 65535”和“* hard nofile 65535”
  3. 编辑“/etc/nginx/nginx.conf”文件,加入“worker_rlimit_nofile 65535;”

搞定,重启nginx,观察几天看看。

 

Posted by hee at 10:12 AM | Permalink | 评论(0)