资讯专栏INFORMATION COLUMN

磁盘空间难清理的困境

IT那活儿 / 2159人阅读
磁盘空间难清理的困境

点击上方“IT那活儿”,关注后了解更多精彩内容!!

问题现象

如果有一天,服务器磁盘空间占用满了,会觉得这是个小问题,对大多数运维人来讲,这得确是个小问题。
如果有一天,突然发现,服务器磁盘空间占用满了,却迟迟清理不了,也许就不是个小问题了。
这一天来了,df命令统计到服务器根分区100%了,告警中…

环境描述

操作系统:Red Hat Enterprise Linux 7.6
业务系统:xxx业务系统

问题处理

No.1 常规操作

磁盘空间占用满,一般清理步骤,使用du命令查询磁盘空间下的磁盘空间占用大小,运气好的话就找到了,大多数情况下运气都挺好的。
-- 命令示例如下:
du -skh /* #查看根目录下目录大小;
du -scmx .[!.]* * 2>/dev/null | sort -n #查看隐藏文件大小。

No.2 幸运一击

偶尔情况下,排查下服务器是否存在已经被删除但是还存在被其他进程访问的文件。这些文件已经从文件系统树中删除(或者更恰当地说,取消链接),但是由于一个或多个进程仍然打开它们,它们占用的磁盘空间无法回收。
-- 命令示例如下:
# lsof / | grep -i deleted
--此方式查询到结果文件会带有[deleted]标签,如图所示:
这种情况下,需要重启被标记删除文件所依赖的相关进程服务就可以恢复。
示例中只需要重启php服务或kill掉相关php进程即可。
极端情况下,重启主机(危险操作)也可以。

No.3 灵机一动

-- 有种排查方法,排查下服务器上是否存在稀疏文件:
稀疏文件的文件大小使用ls和df命令查询时是不一样,在排查磁盘占用过程中使用ls命令查看文件大小是存在一些误区的。
稀疏文件在Linux文件系统中比较常见,NTFS、HFS+文件系统都支持稀疏文件系统。稀疏文件通过仅存储空洞的元数据而不使用实际磁盘块来有效地使用存储。稀疏文件是存储空洞的元数据集合成的一个文件,稀疏文件的实际数据大小与本身定义的文件大小是不一致的。
-- 示例如下:
第一列是实际使用的磁盘空间。这个文件实际上消耗了 12Gb 的空间。
第二个大小列给出文件元数据大小。此文件的元数据报告定义它是一个 24Gb 文件。
稀疏文件大小查看方式:#ls -lsh spacefile [稀疏文件名]
注意:稀疏文件的实际数据大小才会被df命令统计到磁盘空间占用比例

No.4 思如泉涌

-- 还有一种排查办法,排查是否有[Mounted-Over]的现象。
[Mounted-Over]是指当前挂载点上包含挂载分区之前的数据。
如果挂载点在挂载分区之前包含数据,那么df命令是可以统计到分区挂载之前的数据占用空间的。
例如,如果目录中/mnt/test包含大文件,然后在其目录上挂载了 NFS 文件系统/mnt/test,df命令会统计/mnt/test目录中之前的大文件及之后挂载的NFS文件系统空间。
在生产环境中在无法判断问题根源的情况下,不能贸然就卸载/mnt/test挂载点,可以通过将可疑文件系统绑定挂载到不同目录来验证生产中分区挂载点下是否有隐藏数据。
-- 命令示例如下:
$ mkdir /tmp/root_chk
$ mount --bind / /tmp/root_chk
$ du -h /tmp/root_chk/mnt/test
-- 示例如下:
例如,从以下开始,我们看到 df 命令统计 /tmp 正在使用 3.1G 的分配空间,但 du 仅统计为11M。
现在我们运行上面的bind命令,发现/tmp/mnt目录下隐藏着文件作为挂载点。这些文件存在于 /tmp 文件系统中,但是一旦另一个文件系统分区使用该目录为挂载点,这些文件就对 du 命令的文件系统扫描功能不可见。
注意:此方法应仅用于查看挂载点下占用的空间。 尝试删除 --bind 挂载挂载中的文件可能会导致文件系统损坏。 要删除文件,请卸载必要的文件系统或在救援模式下执行操作。

处理总结

在处理磁盘空间占用问题的过程中,遇到的一些问题,有些可能是文件系统自身特性导致的,但有时候是人为原因造成文件系统出现如此异常的情况,操作处理的规范性,才能有助于减少后期维护成本,提高运维工作效率。
但针对处理磁盘空间占满的技术问题上,在没有头绪的情况下,需要从不同角度、不同思路去尝试解决下,必然会有不一样的发现。前人方法多,但学习的同时不要限制自己的思维。

本 文 原 创 来 源:IT那活儿微信公众号(上海新炬王翦团队)


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129705.html

相关文章

  • 数据库智能运维探索与实践

    摘要:本文介绍了美团整个数据库平台的演进历史,以及我们当前的情况和面临的一些挑战,最后分享一下我们从自动化到智能化运维过渡时,所进行的思考探索与实践。 背景近些年,传统的数据库运维方式已经越来越难于满足业务方对数据库的稳定性、可用性、灵活性的要求。随着数据库规模急速扩大,各种NewSQL系统上线使用,运维逐渐跟不上业务发展,各种矛盾暴露的更加明显。在业务的驱动下,美团DBA团队经历了从人肉运维到工...

    TNFE 评论0 收藏0
  • 数据库智能运维探索与实践

    摘要:本文将介绍美团点评整个数据库平台的演进历史,以及我们当前的情况和面临的一些挑战,最后分享一下我们从自动化到智能化运维过渡时,所进行的思考探索与实践。 从自动化到智能化运维过渡时,美团DBA团队进行了哪些思考、探索与实践?本文根据赵应钢在第九届中国数据库技术大会上的演讲内容整理而成,部分内容有更新。 背景 近些年,传统的数据库运维方式已经越来越难于满足业务方对数据库的稳定性、可用性、灵活...

    CHENGKANG 评论0 收藏0
  • 数据库智能运维探索与实践

    摘要:本文将介绍美团点评整个数据库平台的演进历史,以及我们当前的情况和面临的一些挑战,最后分享一下我们从自动化到智能化运维过渡时,所进行的思考探索与实践。 从自动化到智能化运维过渡时,美团DBA团队进行了哪些思考、探索与实践?本文根据赵应钢在第九届中国数据库技术大会上的演讲内容整理而成,部分内容有更新。 背景 近些年,传统的数据库运维方式已经越来越难于满足业务方对数据库的稳定性、可用性、灵活...

    yzzz 评论0 收藏0
  • 01缓存-缓存是什么

    摘要:在这里所讲的缓存是计算机设备的缓存。三缓存的特征命中率命中率返回正确结果数请求缓存次数,命中率问题是缓存中的一个非常重要的问题,它是衡量缓存有效性的重要指标。 前言: 对于工作经验仅仅只有一年的我来说, 写这篇文章有些吃力,并且感觉有些理解还不够透彻,但是还是铆足了劲想啃啃缓存这块硬骨头。缓存是性能优化的一个必经之路,可以说用好了缓存,性能优化的路就走完一半了。 一、系统缓存 在知乎...

    AaronYuan 评论0 收藏0
  • 云计算将在大数据领域扮演怎样角色?

    摘要:大数据处理和所有权导致存储行业现状发生转变。鉴于这些发展动向,云计算在大数据领域可以扮演什么角色呢答案是冷存储,这个领域仍没有得到企业界的充分利用。云计算和虚拟存储在数据集市也存在发展前景。  大数据处理和所有权导致存储行业现状发生转变。本文介绍了存储实践方面最重大的变化。  企业存储环境主要是围绕记录系统构建起来的,侧重于这些问题:为数据记录长度固定的文件购买哪些类型的存储介质和管理系统,...

    freecode 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<