删除文件后磁盘空间未释放,只能重启进程?(仅供参考)

这篇具有很好参考价值的文章主要介绍了删除文件后磁盘空间未释放,只能重启进程?(仅供参考)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

很多运维同学都遇到过“磁盘告警”,遇到这种情况就需要去清理磁盘。

这时候,很多同学通过各种途径、手段、命令找到了占用磁盘比较大的文件,然后大手一挥, 

sudo rm -rvf xxxxx.log

以为这样任务就完成了,谁知道,一查询磁盘使用量还是居高不下,完全没有释放。

这是因为在Linux中,如果你删除一个正在被使用的文件,磁盘空间不会立即释放。Linux使用了一种称为"删除挂起"的机制。当你删除一个文件时,文件系统会将该文件标记为已删除,但实际上并不会立即从磁盘上删除它。只有当所有正在使用该文件的进程关闭时,磁盘空间才会被释放。

这时候,不知道怎么处理了,网上的解决办法基本上是让你重启相应的进程。当然我们可以不重启进程。直接重启主机呗(皮一下就很开心)。

删除文件后磁盘空间未释放,只能重启进程?(仅供参考)

下面我说一种不需要重启进程或者主机的办法,不一定能完全解决大家的问题,方法仅供参考

1、如何查询哪些文件被删除了,但是空间没有释放

下面以/data目录为例
sudo lsof /data | grep deleted |sort -k7rn | less

2、查询出来结果如下图,我们需要关注第2和第4列内容,后面需要用到

删除文件后磁盘空间未释放,只能重启进程?(仅供参考)

3、这时候我们执行

sudo ls -l /proc/3198801/fd/1

命令中:
3198801: 就是进程号
1: 是第四列w前面的数字 ,如 1w,则id为1,如 47w,则id为47

4、这里我们可以查询到这个命令是存在的,于是我们执行下列命令

sudo cp /dev/null /proc/3198801/fs/1

5、执行完成后,再次使用命令查询磁盘空间是否释放掉。

6、这个命令我在自己运维的环境中跑过,是能解决此类问题的。不过这个方法为什么能够解决问题,或者是否仅仅适用某些特定的场景,个中缘由还请各位大佬自行探索吧。文章来源地址https://www.toymoban.com/news/detail-677079.html

到了这里,关于删除文件后磁盘空间未释放,只能重启进程?(仅供参考)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MySQL delete删除数据后,释放磁盘空间

    当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种情况的简单说明: 当执行 删除数据表 或者 清空数据表 的全部数据操作时,都 会释放掉 相应的 磁盘存储空间 。 在MyISAM和InnoDB(innodb_file_

    2024年02月12日
    浏览(32)
  • 【网络教程】如何解决Docker删除镜像和容器后磁盘空间未释放的问题

    当删除Docker镜像和容器后,磁盘空间并未释放,这可能导致磁盘空间不足。造成此问题的原因包括: Docker镜像和容器的删除策略:默认情况下,Docker不会立即删除镜像和容器,而是将它们保留30天。 联合文件系统(UnionFS)的特性:联合文件系统是Docker镜像的基础,它允许在

    2024年02月09日
    浏览(37)
  • 【已解决】Windows 的 docker 删除容器后 WSL2 磁盘空间不释放的问题

    很多同学拉取镜像使用一段时间后发现 C 盘快满了,把之前用过的镜像和容器删除,发现 WSL 挂载目录的虚拟磁盘大小没有变化,非常的奇怪。 其实,不同于 WSL1, WSL2 本质上是虚拟机 ,所以 Windows 会自动创建 vhdx 后缀的虚拟磁盘文件作为存储。这个 vhdx 后缀的虚拟磁盘文件

    2024年02月16日
    浏览(79)
  • MySQL Delete 表数据后,磁盘空间并未释放,为什么?

    有开发小哥咨询了一个问题,记录一下处理过程分享给有需要的朋友。 问题如下: MySQL数据库中有几张表增删比较频繁、数据变动剧烈且数据量大,导致数据增长过快,磁盘占用多。为了节约成本,定期进行数据备份,并通过delete删除表记录,但是执行delete操作后发现磁盘空

    2024年02月06日
    浏览(45)
  • 如何清除 Pip 缓存?从而优化 Python 环境并释放磁盘空间

    在 Python 开发中,Pip 是最常用的包管理工具之一,它用于安装、升级和管理 Python 包。然而,随着时间的推移,Pip 可能会积累大量的缓存文件,占用磁盘空间并可能导致一些问题。因此,定期清除 Pip 缓存是一个好习惯。本文将详细介绍如何清除 Pip 缓存,帮助您优化 Python 环

    2024年02月11日
    浏览(27)
  • mongodb如何删除数据并释放空间

            mongodb删除数据后不会直接释放内存空间,是因为使用了一种称为“延迟删除”的策略。这意味着当一个文档被删除时,它仍然会占用一定的内存空间,直到这个空间被垃圾回收器(Garbage Collector)回收。         删除数据操作前建议先评估你的操作会有什么样的

    2024年02月06日
    浏览(31)
  • hdfs删除后空间不是释放,trash回收机制

    一、现象 hdfs删除后,3天了还不删除,故排查排查问题 二、排查过程及原理 Trash机制,叫做回收站或者垃圾桶,默认情况下是不开启的。启用 Trash 功能后,从 HDFS 中删除某些内容时,文件或目录不会立即被清除,它们将被移动到回收站Current目录中(/user/{username}/.Trash/current)。

    2024年02月11日
    浏览(25)
  • 解决docker删除镜像和容器之后,硬盘空间没有释放

    如果是下边这种,状态为Running,就需要执行第二步,终止运行。否则,直接从第三步开始

    2024年02月16日
    浏览(32)
  • 因磁盘空间不足导致MacBook Pro无法启动(反复重启)的解决过程

    我的电脑是2017版的15寸MacBook Pro,SSD空间512G,因为装了windows和Linux虚拟机,再加上微信、QQ都是吃磁盘大户,剩余空间仅剩11G左右。 最近启动一直很慢,昨天一早干脆反复启动,出现一个多语言版的提示:“电脑因出现问题而重新启动,请按一下按键,或等几秒钟以继续启动

    2024年02月15日
    浏览(46)
  • Linux磁盘空间与文件大小查看命令详解

            在Linux系统中,有多个命令可以用来查看磁盘空间的使用情况。最常用的命令是 df (disk free)。 df 命令的 -h 选项以人类可读的方式显示磁盘空间,该命令将显示文件系统的使用情况、剩余空间等信息。         为了查看特定文件夹的大小,我们可以使用 du (

    2024年01月20日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包