iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux删除文件后空间为什么不释放
  • 256
分享到

Linux删除文件后空间为什么不释放

2023-06-16 12:06:25 256人浏览 独家记忆
摘要

这篇文章主要介绍“linux删除文件后空间为什么不释放”,在日常操作中,相信很多人在Linux删除文件后空间为什么不释放问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux删除文件后空间为什么不释放”的疑

这篇文章主要介绍“linux删除文件后空间为什么不释放”,在日常操作中,相信很多人在Linux删除文件后空间为什么不释放问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux删除文件后空间为什么不释放”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

你是否碰见过 Linux 环境下,文件已经删除,但是空间未被释放的情况?这篇小文就会介绍一下,这种问题的一个场景,以及相应的解决方案。

我们的一台应用服务器操作系统是 Red Hat  Linux,监控报警,/opt/applog文件系统使用率超阈值,整体容量为50G,但发现实际文件容量20G,剩下的30G空间是什么?

我们知道,Linux  环境下,任何事物,都是以文件的形式存在,系统在后台,为每个应用程序,分配了一个文件描述符,他为应用程序和操作系统之间的交互操作提供了通用的接口,既然是文件,就会占用空间,此时可以使用  lsof 指令,他可以列出,当前系统正在打开的文件。

>lsof COMMAND      PID      USER   FD      TYPE    DEVICE  SIZE/OFF      node NAME ... filebeat  111442   app  1r      REG     253,3 209715229   1040407 /opt/applog/E.20171016.info.012.log filebeat  111442   app  2r      REG     253,3 209715254    385080 /opt/applog/E.20171015.info.001.log (deleted)

表头各字段,含义如下:

  • COMMAND:进程的名称

  • PID:进程标识符

  • USER:进程所有者

  • FD:文件描述符,应用程序通过文件描述符识别该文件。如cwd、txt等

  • TYPE:文件类型,如DIR、REG等

  • DEVICE:指定磁盘的名称

  • SIZE:文件的大小

  • NODE:索引节点(文件在磁盘上的标识)

  • NAME:打开文件的确切名称

可以看出,有一些行中,NAME标识了(deleted)

/opt/applog/E.20171015.info.001.log (deleted)

他的含义,就是这文件已被删除,但打开文件的句柄,并未关闭,再看 COMMAND 的名称是 filebeat,USER 进程所有者是  app,这是我们的日志采集进程,app 用户开启了 filebeat 进程。

插播一下日志采集平台

传统的开源日志平台,即 elk,由 elasticsearch、Logstash 和 Kiabana 三个开源工具组成,其中:

  • Elasticsearch 是个开源分布式搜索引擎,分布式,零配置,自动发现,索引自动分片,索引副本机制,restful  风格接口,多数据源,自动搜索负载等。

  • Logstash 是一个开源的采集工具,他可以对日志进行收集、过滤,并将其存储供以后使用。

  • Kibana 是一个开源的图形 WEB 工具,可以为 Logstash 和 ElasticSearch 提供日志分析友好的 Web  界面,可以汇总、分析和搜索重要数据日志。

常见的部署图,如下所示

Linux删除文件后空间为什么不释放

对于上面提到的 filebeat 又是什么?和 ELK 有什么联系?

因为 logstash 是 JVM 跑的,资源消耗比较大,所以后来作者又用 golang 写了一个功能较少但是资源消耗也小的轻量级的  logstash-forwarder。不过作者只是一个人,加入Http://elastic.co公司以后,因为 es 公司本身还收购了另一个开源项目  packetbeat,而这个项目专门就是用 Golang 的,有整个团队,所以 es 公司干脆把 logstash-forwarder 的开发工作也合并到同一个  golang 团队来搞,于是新的项目就叫 filebeat 了。

Linux删除文件后空间为什么不释放

简单来讲,filebeat 就是日志采集的进程 agent,负责采集应用日志文件。

对于我上面的这个问题,之所以有大量的(deleted),未释放文件句柄,还有个背景,就是由于磁盘空间非常有限,临时加了任务,每小时删除12小时前的日志,换句话说,定时任务会自动删除此时  filebeat 正在打开着的一些文件,于是这些文件,就变为了未释放的文件,因此实际文件删除了,但空间未被释放。

解决方案1:

为了迅速释放空间占用,最直接的方法,就是 kill -9 filebeat  进程,此时空间会释放。但并不是从根本解决,定时任务还会删除这些,filebeat 打开的文件,导致空间满。

解决方案2:

filebeat 的配置文件 filebeat.yml,其实有两个参数:

close_older: 1h

说明:Close older closes the file handler for which were not modified for longer  then close_older. Time strings like 2h (2 hours), 5m (5 minutes) can be  used.

即如果一个文件在某个时间段内没有发生过更新,则关闭监控的文件handle,默认1小时。

force_close_files: false

说明:This option closes a file, as soon as the file name changes. This config  option is recommended on windows only. Filebeat keeps the files it’s reading  open. This can cause issues when the file is removed, as the file will not be  fully removed until also Filebeat closes the reading. Filebeat closes the file  handler after ignore_older. During this time no new file with the same name can  be created. Turning this feature on the other hand can lead to loss of data on  rotate files. It can happen that after file rotation the beginning of the new  file is skipped, as the reading starts at the end. We recommend to leave this  option on false but lower the ignore_older value to release files faster.

即当文件名称有变化时,包括改名和删除,会自动关闭一个文件。

这两个参数结合起来,根据应用需求,一个文件30分钟内不更新,则需要关闭句柄,文件改名或删除,需要关闭句柄

close_older: 30m  force_close_files: true

可以满足,filebeat 采集日志,以及定时删除历史文件,这两个任务的基本要求。

到此,关于“Linux删除文件后空间为什么不释放”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Linux删除文件后空间为什么不释放

本文链接: https://www.lsjlt.com/news/283631.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Linux删除文件后空间为什么不释放
    这篇文章主要介绍“Linux删除文件后空间为什么不释放”,在日常操作中,相信很多人在Linux删除文件后空间为什么不释放问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux删除文件后空间为什么不释放”的疑...
    99+
    2023-06-16
  • Linux删除文件后空间未释放怎么办
    本篇内容主要讲解“Linux删除文件后空间未释放怎么办”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux删除文件后空间未释放怎么办”吧!当系统空间使用量过大需要清理空间或者清理某个文件时,...
    99+
    2023-06-05
  • debian删除文件后空间不释放怎么办
    如果在Debian系统中删除文件后空间没有被释放,可能是因为有其他进程仍在使用这些文件,或者是文件被移动到了垃圾箱中而没有被完全删除...
    99+
    2024-04-09
    debian
  • linux怎么删除文件并释放空间
    要删除文件并释放空间,可以使用以下命令: 使用 rm 命令删除文件: rm 文件名 如果要删除一个目录及其所有内容,可以使用...
    99+
    2024-04-09
    linux
  • Linux文件后删除空间未释放问题怎么解决
    小编今天带大家了解Linux文件后删除空间未释放问题怎么解决,文中知识点介绍的非常详细。觉得有帮助的朋友可以跟着小编一起浏览文章的内容,希望能够帮助更多想解决这个问题的朋友找到问题的答案,下面跟着小编一起深入学习“Linux文件后删除空间未...
    99+
    2023-06-28
  • Debian删除文件空间不释放怎么解决
    如果在Debian中删除了文件但是空间没有释放,可能是因为文件被其他进程占用或者是被删除但是仍然被某个进程所引用。以下是一些解决方法...
    99+
    2024-04-09
    debian
  • es删除数据后空间不释放怎么办
    如果删除数据后,空间没有释放,可能是因为数据库中的数据并没有被真正删除,而是被标记为删除状态,数据仍然占用着空间。这种情况通常发生在...
    99+
    2024-04-09
    es
  • Linux中出现文件已删除但空间不释放的原因是什么
    小编给大家分享一下Linux中出现文件已删除但空间不释放的原因是什么,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧! 1、错误现象运维的监控系统发来通知,报告一台服务器空间满了,登录服务器查看,根分区确实没有空间了...
    99+
    2023-06-16
  • linux删除后未释放磁盘空间怎么解决
    当在Linux中删除文件时,文件系统不会立即释放磁盘空间。相反,它将把空间标记为可用,以便在以后存储新文件。 如果您使用的是ext2...
    99+
    2023-10-25
    linux
  • 在Linux中rm删除文件空间就释放了吗
    本篇内容介绍了“在Linux中rm删除文件空间就释放了吗”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!删除...
    99+
    2024-04-02
  • linux中rm删除不释放空间怎么解决
    这篇文章主要介绍“linux中rm删除不释放空间怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux中rm删除不释放空间怎么解决”文章能帮助大家解决问题。解决方法:1、利用“lsof |...
    99+
    2023-06-30
  • Linux删除了文件后空间没有释放原因及如何解决
    这篇文章主要介绍了Linux删除了文件后空间没有释放原因及如何解决的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Linux删除了文件后空间没有释放原因及如何解决文章都会有所收获,下面我们一起来看看吧。我们的一台...
    99+
    2023-06-28
  • linux中怎么解决文件已删除但空间不释放的问题
    本篇内容主要讲解“linux中怎么解决文件已删除但空间不释放的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“linux中怎么解决文件已删除但空间不释放的问题”吧!导读一般来说不会出现删除文件...
    99+
    2023-06-05
  • db2删除数据后表空间不释放怎么解决
    当删除数据后,表空间不会立即释放,这是因为DB2使用一种称为延迟空间释放(deferred space release)的机制来提高...
    99+
    2024-04-09
    db2
  • es删除数据后空间不释放如何解决
    解决这个问题有多种方法,其中一种方法是使用数据库的压缩功能来释放被删除数据所占用的空间。另外,可以定期对数据库进行备份和恢复操作,这...
    99+
    2024-04-09
    es
  • linux删除未释放空间怎么解决
    在Linux上,当删除文件或目录后,磁盘空间并不会立即释放。相反,它们被放入一个特殊的回收站,称为“垃圾箱”或“垃圾桶”。这样做是为...
    99+
    2024-04-09
    linux
  • oracle删除数据后怎么释放表空间
    在Oracle数据库中,使用DELETE语句删除数据只会删除数据行,而不会释放表空间。如果需要释放表空间,可以使用以下方法: 使...
    99+
    2023-10-26
    oracle
  • linux系统删除文件之后服务器磁盘空间未释放处理
    一、通过rm 删除文件之后磁盘空间未释放,这是有进程仍在占用被删除的文件,要想真正的删除,只需要停止或重启进程,就会自动释放磁盘空间 二、应用进程很重要不能重启或停止,可以使用以下方法: 1.查看占用...
    99+
    2023-08-31
    linux 运维 服务器
  • Linux系统下rm删除/mv移动文件后磁盘空间没有释放
    目录 一、问题背景 二、问题描述 三、问题解决 1、检查服务器占用硬盘资源的文件 2、查看删除文件被占用的具体情况 3、如何让进程释放? 一、问题背景 由于生产环境所部署的服务版本太老,加上部署时磁盘规划不合理,导致近几天服务日志增加...
    99+
    2023-10-09
    linux 运维 服务器
  • 如何解决LINUX中文件已删除但空间不释放的问题
    这篇文章主要介绍“如何解决LINUX中文件已删除但空间不释放的问题”,在日常操作中,相信很多人在如何解决LINUX中文件已删除但空间不释放的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何解决LINUX...
    99+
    2023-06-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作