没有合适的资源?快使用搜索试试~ 我知道了~
磁盘满了,为啥du却显示还有很大空间
需积分: 50 0 下载量 155 浏览量
2019-02-27
12:26:51
上传
评论
收藏 46KB DOCX 举报
温馨提示
试读
2页
• du:disk usage • df:disk free • lsof:list open files • echo "" > access.log
资源推荐
资源详情
资源评论
今天有个实习生问了我一个诡异的问题,“线下一台磁盘大小 32G 的开发机(虚拟机)打不出日志”,把追
查过程和大家分享一下。
画外音:贵司开发机磁盘容量多大?
先 du 一下,查看磁盘空间:
[shenjian@dev02 ~]# du -sch /
16G /
画外音:似乎还有空间。
再试了一下 df,发现结果不一样:
[shenjian@dev02 ~]$ df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sda2 33G 33G 33G 100% /
/dev/sda1 965M 30M 886M 4% /boot
画外音:显示
32G
都用完了。
du:disk usage
通过搜索文件来计算每个文件的大小然后累加得到的值。
df:disk free
通过文件系统来获取空间大小的信息。
如果用户删除了一个正在运行的应用程序所打开的某个目录下的文件:
du 命令返回的值,显示出减去了该文件后的总大小
df 命令返回的值,则不显示减去该文件后的大小(文件句柄还在被使用),直到该运行的应用程序关闭了
这个打开的文件(才会真正释放空间)
常见的场景是,删除了一个很大的正在写入的 tomcat 的 access 日志,du 显示的结果会把日志大小减去,
而 df 则仍会包含该日志的大小(实际上 tomcat 仍引用了该文件的句柄)。
对我们的启示是,如果要删除某个 access 日志,不要粗暴的 rm,而要温柔的:
echo "" > access.log
画外音:朋友们,有没有
rm
过仍被引用的日志?
如何发现被应用程序引用着“已删除”文件呢?
lsof:list open les
使用 lsof 查看打开的文件。
lsof | grep deleted
结果显示,一个我的 logsvr 程序(跑了几个月了),和实习生写的 web-server 程序(实习大作业)呈
现 deleted 状态,值得怀疑。
画外音:请在手机上把图放大。
最终定位出,是 web-server 程序中的一个:
资源评论
hyy80688
- 粉丝: 10
- 资源: 202
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功