个人微博:http://weibo.com/h2fly

欢迎技术交流


现象:

8月23之后,时不时收到服务器的/usrused > 90%的报警


排查:

1、du发现磁盘/usr使用不大,而报警使用的df=》明显是有文件删除了空间没释放。

注:du和df的实现机制不同:du统计磁盘上存在的文件然后累加;df通过文件系统索引获取信息(会统计到删除了但是没释放的空间),实现机制的不同也会导致运行速度的区别。

2、用lsof(lsof /usr)查看发现nginx的tmp文件过大,删除之后,但是nginx进程依旧使用,导致空间未释放


解决:

方法1:进程定时重启,以释放空间:因影响用户体验,pass

方法2:不使用nginx的tmpfile:因为api主要是生成静态文件,给用户下载的,so加上缓存还是有一定作用的。所以考虑再三,还是保留。

方法3:限制nginx的tmp文件:以proxy_max_temp_file_siz,限制了每个文件最大300m(即314572800字节).

proxy_max_temp_file_size 300m;

测试效果ok,30号之后就没报警了


【注意】:线上变更都有风险,这样配置很可能限制了对方下载的文件的最大大小未300m,如果有超过300m的大文件的,【请慎重配置】


个人微博:http://weibo.com/h2fly

欢迎技术交流