为什么磁盘满了,du却显示有很大的空间

  • 时间:
  • 浏览:7
  • 来源:uu快3玩法_uu快3新平台_棋牌

结果显示,一一五个多我的logsvr程序运行运行(跑了多少月了),和实习生写的web-server程序运行运行(实习大作业)呈现deleted请况,值得怀疑。

最终定位出,是web-server程序运行运行中的一一五个多:

while(pid=fork())

手误写成了:

while(pid==fork())

由于 while内老是fork应用程序运行运行,直到将系统资源吃干。如可会让该应用程序运行运行肯能成了zombie应用程序运行运行,无法kill掉,重启开发虚拟机后,问题图片得到正确处理。

今天工作遇到一一五个多很有意思的问题图片,跟没有人分享一下

一一五个多多服务器跳出故障,根据经验判断是磁盘满了,如可会让登录服务器用 du -sch 发现磁盘还有20G的存储空间,再用df -h命令查想看 下,磁盘简直满了。为那此一一五个多命令查出来的磁盘空间不一样呢,于是百度了下。

发现du命令是通过搜索文件来计算每个文件的大小如可会让累加得到的值。而df命令通过文件系统来获取空间大小的信息。

肯能用户删除了一一五个多正在运行的应用程序运行运行所打开的某个目录下的文件:

du命令返回的值,显示出减去了该文件后的总大小

df命令返回的值,则不显示减去该文件后的大小(文件句柄还在被使用),直到该运行的应用程序运行运行关闭了你你什儿 打开的文件(才会真正释放空间)

常见的场景是,删除了一一五个多很大的正在写入的tomcat的access日志,du显示的结果会把日志大小减去,而df则仍会蕴含该日志的大小(实际上tomcat仍引用了该文件的句柄)

对没有人的启示是,肯能要删除某个access日志,太大粗暴的rm,而要温柔的:

echo "" > access.log

如可发现被应用程序运行运行引用着“已删除”文件呢?

lsof:list open files

使用lsof查看打开的文件

lsof | grep deleted