nginx的tmp文件过大导致磁盘空间不足一例
2013-11-02 13:56
573 查看
个人微博: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
欢迎技术交流
欢迎技术交流
现象:
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
欢迎技术交流
相关文章推荐
- mysql-bin日志文件过大导致磁盘空间不足问题解决方法
- MONGODB日志文件过大,导致磁盘空间不足
- mssql errorlog导致磁盘空间不足 与 主文件组不足 的解决
- Linux inode满导致创建文件报磁盘空间不足
- 解决undo 表空间过大导致磁盘空间不足的问题
- 磁盘空间不足导致task的mapred local文件无法写入而失败解决
- undo retention Oracle 10g UNDO表空间过大导致磁盘空间不足的解决
- mysql日志文件过大导致磁盘空间不够的问题
- 解决UNDOTBS1表空间过大导致磁盘空间不足的问题
- 网站添加数据出错,原来是MS SQL Server2008日志文件占据空间过大导致的
- 磁盘空间不足,在线移动Oracle的数据文件
- 解决undo 表空间过大导致磁盘空间…
- ubuntu下解决因为/boot磁盘空间不足导致无法更新
- sqlserver错误"试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足。)。"处理
- 未能加载文件或程序集“SMSWeb”或它的某一个依赖项。磁盘空间不足。 (异常来自 HRESULT:0x80070070)
- 试图扩大物理文件时,MODIFY FILE 遇到操作系统错误 112(磁盘空间不足)
- WRI$_ADV_OBJECTS表过大,导致PDB的SYSAUX表空间不足
- oracle for linux服务器磁盘空间不足,通过过期的文件释放磁盘空间
- 解决 Access 磁盘空间或内存不足一例
- 磁盘空间不足,在线移动Oracle的数据文件