iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >Linux磁盘空间释放问题整理
  • 864
分享到

Linux磁盘空间释放问题整理

Linux磁盘空间释放 2022-06-03 14:06:49 864人浏览 独家记忆
摘要

IDC里的一台服务器的/分区使用率爆满了!已达到100%!经查看发现有个文件过大(80G),于是在跟有关同事确认后rm -f果断删除该文件。但是发现删除该文件后,/分区的磁盘空间压根没有释放出来,使用率还是100%!

IDC里的一台服务器的/分区使用率爆满了!已达到100%!经查看发现有个文件过大(80G),于是在跟有关同事确认后rm -f果断删除该文件。但是发现删除该文件后,/分区的磁盘空间压根没有释放出来,使用率还是100%!这是为什么呢??

[root@linux-node1 ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/mapper/VolGroup00-LogVol00 58G 7.8G 47G 100% /tmpfs 1.9G 0 1.9G 0% /dev/shm/dev/vda1 190M 72M 108M 40% /boot

原因分析

在Linux系统中,通过rm或者文件管理器删除文件,只是将它会从文件系统的目录结构上解除链接(unlink),也就是说只是删除了文件和系统目录结构的链接;如果文件在删除时是被打开的(有一个进程正在使用该文件,文件被进程定或者有进程一直在向这个文件写数据等)状态,那么进程将仍然可以读取该文件,也就是说没有删除掉文件在读取的状态,所以磁盘空间也就会一直被占用。

一个文件在文件系统中的存放分为两个部分:数据部分和指针部分,指针位于文件系统的meta-data中,数据被删除后,这个指针就从meta-data中清除了,而数据部分存储在磁盘中,数据对应的指针从meta-data中清除后,文件数据部分占用的空间就可以被覆盖并写入新的内容,之所以出现删除文件后,空间还没释放,就是因为有进程还在一直向这个文件写入内容,导致虽然删除了文件,但文件对应的指针部分由于进程锁定,并未从meta-data中清除,而由于指针并未被删除,那么系统内核就认为文件并未被删除,因此通过df命令查询空间并未释放也就不足为奇了。

解决措施有以下几种

1.通过lsof|grep deleted命令获取到已经被删除但是仍然被应用程序占用的文件列表,然后kill掉还在占用所删除文件的进程。需要注意的是:如果有很多进程都在使用所删除文件,那么采用第1种方式kill进程就有点麻烦了,而且风险也比较大。因为kill进程是通过截断proc文件系统中的文件可以强制要求系统回收分配给正在使用的的文件。必须要确定不会对运行中的进程造成影响时才能使用,应用程序对这种方式支持的并不好,当一个正在使用的文件被截断可能会引发不可预知的问题。

2.或停掉或重启使用这个所删除文件的应用,让OS自动回收磁盘空间。

3.也可以重启操作系统,不过这并不是最好的方法4.对待这种进程不停对文件写日志的操作,要释放文件占用的磁盘空间,最好的方法是在线清空这个文件。通过这种方法,磁盘空间不但可以马上释放,也可保障进程继续向文件写入日志。

在线清空文件(比如/home/wangshibo.log)的方式:

# echo " " > /home/wangshibo.logb)# cat /dev/null > /home/wangshibo.loGC)# > /home/wangshibo.log

还有一种磁盘空间使用问题的现象:明明使用df -h命令查看磁盘空间使用率不算高,还有很多空余空间,但是创建文件或写入数据时一直报错磁盘写满:" no space left on device"!

一般这种问题都是由于分区目录下deleted删除后的资源空间没有真正释放出来导致的, 具体处理流程如下:

1.先df -lh查看一下磁盘使用状况, 发现/data分区下的Used已用空间很大, 但是实际查看并没有占用那么大的空间!2.找到被删除文件所在的分区, 比如/data分区3.查看被删除了的所有文件:lsof -n /data |grep deleted4.杀死这些文件的delete进程, 释放空间: lsof -n /data |grep deleted|awk '{print $2}'|xargs kill -95.接着再运行lsof -n /data |grep delete,应该就没有结果了。6.注意: 刚杀死deleted进程时, df -h查看/data 分区, Used已用空间可能时瞬间显示过大, 但随着deleted进程杀死, 资源逐渐释放, /data分区下的Used已用空间会逐渐变小, Avail可用空间会逐渐变大)

大多数文件系统都会保留一部分空间留作紧急情况时用(比如硬盘空间满了),这样能保证有些关键应用(比如数据库)在硬盘满的时候有点余地,不致于马上就 crash,给监控系统和管理员一点时间去察觉。不过有时候这部分预留的硬盘空间不用的话有点浪费。

在Linux系统中,ext2、ext3、ext4文件系统上通常会默认预留5%的磁盘空间,比如磁盘如果是2TB,这就意味着有100GB的空间会被预留下来,这样的话会不会显得有点浪费了。可以通过"tune2fs"命令来改变5%的默认设置,比如只预留2%的空间。但是不建议设成0%,现实环境中这样做不安全

# df -TFilesystem Type 1K-blocks Used Available Use% Mounted on/dev/vda1 ext4 41151808 4962148 34076228 13% /devtmpfs devtmpfs 1931468 0 1931468 0% /devtmpfs tmpfs 1941204 0 1941204 0% /dev/shmtmpfs tmpfs 1941204 652 1940552 1% /runtmpfs tmpfs 1941204 0 1941204 0% /sys/fs/cgrouptmpfs tmpfs 388244 0 388244 0% /run/user/0[root@ss-server ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 40G 4.8G 33G 13% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 620K 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 380M 0 380M 0% /run/user/0

比如上面"/"分区是ext4文件系统,默认系统预留了5%也就是2G的空间。现在可以通过"tune2fs"命令将系统预留空间改为2%。

# tune2fs -m 2 /dev/vda1tune2fs 1.42.9 (28-Dec-2013)Setting reserved blocks percentage to 2% (209704 blocks)

执行后,发现"/"分区腾出了1G的空间,这时系统预留空间也就是2%了。

[root@ss-server ~]# df -hFilesystem Size Used Avail Use% Mounted on/dev/vda1 40G 4.8G 34G 13% /devtmpfs 1.9G 0 1.9G 0% /devtmpfs 1.9G 0 1.9G 0% /dev/shmtmpfs 1.9G 620K 1.9G 1% /runtmpfs 1.9G 0 1.9G 0% /sys/fs/cgrouptmpfs 380M 0 380M 0% /run/user/0

到此这篇关于Linux磁盘空间释放问题整理的文章就介绍到这了,更多相关Linux磁盘空间释放内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Linux磁盘空间释放问题整理

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

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

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

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

下载Word文档
猜你喜欢
  • 如何释放Ubuntu磁盘空间
    这篇文章将为大家详细讲解有关如何释放Ubuntu磁盘空间,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、移除不再需要的软件包如果你了解过 apt-get 或 apt&nbs...
    99+
    2023-06-13
  • mongodb怎么释放磁盘空间
    要释放MongoDB使用的磁盘空间,可以采取以下几种方法: 删除不必要的数据:通过删除不再需要的数据库、集合或文档,可以释放一部...
    99+
    2023-10-26
    mongodb
  • 怎么快速释放Ubuntu/Linux Mint磁盘空间
    这篇文章主要介绍“怎么快速释放Ubuntu/Linux Mint磁盘空间”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么快速释放Ubuntu/Linux Mint磁盘空间”文章能帮助大家解决问题。...
    99+
    2023-06-28
  • windows7释放磁盘空间方式介绍
    我们在windows7电脑中要怎么操作才能储存空间呢,首先就是打开电脑的控制面板,随后点击系统和安全找到管理工具,接着就能见到释放磁盘空间选项了,点击就能开始清理哦,最后选择要清理的文档,确定清理就可以啦,下列便是windows7释放磁盘空...
    99+
    2023-07-18
  • MySQL如何清理数据并释放磁盘空间
    在我们的生产环境中有一张表:courier_consume_fail_message,是存放消息消费失败的数据的,设计之初,这张表的数据量评估在万级别以下,因此没有建立索引。 但目前发现,该表的数据量已经达到百万级别,原因产生了大量的重试消...
    99+
    2023-10-27
    mysql 数据库 后端
  • linux删除后未释放磁盘空间怎么解决
    当在Linux中删除文件时,文件系统不会立即释放磁盘空间。相反,它将把空间标记为可用,以便在以后存储新文件。 如果您使用的是ext2...
    99+
    2023-10-25
    linux
  • MySQL delete删除数据后,释放磁盘空间
    当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种情况的简单说明: 一、删除表|清空数据表 当执行删除数据表或者清空数据表的全部数据操作时,都会释放掉相应的磁盘存...
    99+
    2023-08-18
    mysql delete
  • Linux查看磁盘空间与磁盘空间管理的命令
    这篇文章主要介绍“Linux查看磁盘空间与磁盘空间管理的命令”,在日常操作中,相信很多人在Linux查看磁盘空间与磁盘空间管理的命令问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Linux查看磁盘空间与磁盘空...
    99+
    2023-06-12
  • 怎么使用compact.exe在Windows上释放磁盘空间
    本文小编为大家详细介绍“怎么使用compact.exe在Windows上释放磁盘空间”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用compact.exe在Windows上释放磁盘空间”文章能帮助大...
    99+
    2023-04-14
    windows
  • linux系统删除文件之后服务器磁盘空间未释放处理
    一、通过rm 删除文件之后磁盘空间未释放,这是有进程仍在占用被删除的文件,要想真正的删除,只需要停止或重启进程,就会自动释放磁盘空间 二、应用进程很重要不能重启或停止,可以使用以下方法: 1.查看占用...
    99+
    2023-08-31
    linux 运维 服务器
  • Sublime如何释放被无辜占用的磁盘空间
    小编给大家分享一下Sublime如何释放被无辜占用的磁盘空间,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!删除Sublime的Backup目录,释放被无辜占用的磁...
    99+
    2023-06-06
  • Ubuntu系统释放磁盘空间的方法是什么
    这篇文章主要介绍“Ubuntu系统释放磁盘空间的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Ubuntu系统释放磁盘空间的方法是什么”文章能帮助大家解决问题。和Windows系统不同,U...
    99+
    2023-06-27
  • MongoDB Drop集合不释放磁盘空间的解决办法
    C:\Users\duansf>mongo MongoDB shell version: 2.6.6 connecting to: test > use test switched to db...
    99+
    2024-04-02
  • linux 查看磁盘空间
    要查看Linux系统上的磁盘空间,可以使用以下命令之一:1. df命令:用于显示文件系统的磁盘空间使用情况。```df -h```该...
    99+
    2023-09-06
    Linux
  • Mysql 删除数据,磁盘空间未释放解决办法
    公司的服务器上添加了硬盘监控,收到报警后,确认是mysql的文件占用空间比较大。于是,确认是哪个表占空间比较大后,删除了部分数据,服务器硬盘空间并没有释放掉,报警仍旧存在。 原因及解决办法: 使用de...
    99+
    2023-09-11
    mysql 数据库
  • Win7怎么释放C盘空间
    这篇文章主要介绍“Win7怎么释放C盘空间”,在日常操作中,相信很多人在Win7怎么释放C盘空间问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Win7怎么释放C盘空间”的疑惑有所帮助!接下来,请跟着小编一起来...
    99+
    2023-06-28
  • 怎么解决Linux中“磁盘空间不足”的问题
    这篇文章主要介绍“怎么解决Linux中“磁盘空间不足”的问题”,在日常操作中,相信很多人在怎么解决Linux中“磁盘空间不足”的问题问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么解决Linux中“磁盘空间...
    99+
    2023-06-16
  • 如何解决filebeat占用Linux空间未释放的问题
    如何解决filebeat占用Linux空间未释放的问题,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。我们的一台应用服务器,操作系统是Red Hat Linux,监控报警,/...
    99+
    2023-06-06
  • MySQLdelete删除数据后释放磁盘空间的操作方法
    目录一、删除表|清空数据表二、删除表数据三、优化表空间当 MySQL 数据库服务删除部分数据后;有些情况下这些数据占用的存储空间会释放掉,有些情况这些存储空间则不会释放。以下是对这种...
    99+
    2024-04-02
  • MySQL5.7的表删除数据后的磁盘空间释放过程
    本篇内容介绍了“MySQL5.7的表删除数据后的磁盘空间释放过程”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作