谁偷走了您的Linux服务器磁盘空间?一文带您揭秘并解决!

现象说明

在一次常规检查中,发现 /data 目录占用空间为 78G,但使用 du -sh /data 命令查看实际占用空间却仅为 5G。经过对比和分析,明显有大约 73G 的空间不知被何种文件或数据占用。目前,在 /data 目录下仅可见一个名为 logs 的文件夹。

首先通过 df -lhdu -sh /data 命令查看磁盘和目录空间占用情况:

[root@demo ~]# df -lh | grep /data
Filesystem           Size  Used Avail Use% Mounted on
/dev/sdd             100G  78G    23G   78% /data

[root@demo ~]# du -sh /data
5.0G    /data

/data 目录下执行 ls -l 命令来查看其包含的文件和文件夹:

[root@demo ~]# ls -l /data
total 0
drwxr-xr-x 20 root root 310 Jul 25 14:19 logs

问题排查

为了找出隐藏的占用空间,利用 lsof 命令检查该目录下的文件句柄情况。经检查发现,filebeat 进程占用了多个已删除但未释放的文件句柄,此即是导致空间异常占用的根本原因。

通过以下命令查找占用情况:

[root@demo ~]# lsof -n /data |grep deleted
filebeat 9831 root 9r  REG 8,48 315112660 67116919 /data/logs/1.logs(deleted)
filebeat 9831 root 10r REG 8,48 315124845 67120727 /data/logs/2.logs(deleted)
filebeat 9831 root 11r REG 8,48 315139494 67116921 /data/logs/3.logs(deleted)

解决问题

针对找出的问题,采取结束 filebeat 进程的方式来释放文件句柄,进而回收空间。执行 kill 命令终止对应进程:

[root@demo ~]# kill -9 9831

再次检查磁盘空间,发现占用空间已恢复正常,仅占用 5.1G:

[root@demo ~]# df -lh | grep /data
Filesystem           Size  Used Avail Use% Mounted on
/dev/sdd             100G  5.1G   95G   6% /data

后述总结

本次问题的解决过程再次强调了监控和维护 Linux 服务器磁盘空间的重要性。一个进程因占用已删除文件的句柄导致磁盘空间异常占用,不仅可能影响系统性能,也可能影响到其他应用和服务的正常运行。

此外,也突显了 lsof 工具在系统问题排查中的重要性,能够帮助我们找到潜在的问题和风险。在今后的运维工作中,应定期使用此类工具进行系统检查和维护,确保系统的稳定和安全运行。

同时,针对类似问题,也应建立一套标准化的问题排查和解决流程,提高问题解决的效率和准确性。在处理此类问题时,还需要注意合理安排进程重启时间,以减少对业务的影响。

用一杯咖啡支持我们,每一篇 [技术博文] 都经过我们实操,并非从网上一味的copy,期间花费了大量的心思,希望能够帮忙到您。
暂无评论

发送评论 编辑评论


|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇