2

在我使用的一台 Linux 开发服务器上,我看到根“/”级别的空间使用率为 100%。根文件夹有一个名为“production”的文件夹,它与根所在的文件管理器位于不同的挂载/文件管理器上。Root 拥有接近 7.7/8 GB 的磁盘空间。

我正在对所有以 MB 或 GB 为单位的文件夹进行搜索“du -chs”,并且还找到了根“/”(不包括 /production)使用的总空间,但我没有得到其他空间的位置以及原因当所有文件夹(不包括/production)都显示时,它被 100% 使用,总共只有 2.8GB。

  1. 我怎样才能找回丢失的空间?

  2. 为什么 df -kvh 和 du 命令不能反映所有被使用/未正确使用的空间(当我们说 100% 使用和 du 说 2.8GB 在根“/”级别时)?大约(已分配 7.7 - 已使用 2.8)GB 空间在哪里?

任何想法!我可能在这里缺少什么。

[root@linux-server /]# df -kvh / && echo && echo && df -kvh /production
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-root
                      7.7G  7.3G     0 100% /


Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-production
                      258G  231G   14G  95% /production
[root@linux-server /]#


[root@linux-server /]# ls -1|grep -v "production" | xargs du -chs 2>/dev/null|egrep "total|[0-9][0-9]*[MG]"
7.8M    bin
20M     boot
106M    etc
320M    lib
25M     lib64
60M     root
39M     sbin
1.9G    usr
364M    var
2.8G    total
[root@linux-server /]#
4

2 回答 2

3

好的。我不知道谁对这个问题投了反对票,但找到导致这种行为的原因对我来说很重要。我想与社区分享答案。

因此,即使根“/”处有接近 5 GB 的可用空间,df 命令也没有显示它,可能是因为某些操作系统(错误 / 任何设计)。

似乎如果您终止了一个进程并且它留下了一些子进程,或者如果您终止了一个正在使用文件夹的进程并且如果您删除了该文件夹(在该进程正在进行时),那么可能会发生此问题.

高级别的,如果系统没有以某种方式杀死子进程/pid(这不是必需的)进程,“df”命令将无法正确反映您的空间(因为该子进程/进程仍然以某种方式持有资源)。

现在,我是如何解决的。

我看到有一些 Jenkins (java) 进程正在运行,我杀死了它们。那仍然没有收回我的空间(我看到只有 420KB 可用),然后我执行了“ps -eAf”并看到以下进程正在运行。

c123456  23019     1 99 Oct21 ?        3-07:57:35 readelf -Wa /tmp/Goslr0qbOe/content2/jdk16-solaris-1.6.0.3.tar/jdk1.6.0_03/jre/lib/sparc/libioser12.so

(上述过程由某个实用程序启动,可能是“pkgdiff”或由 pkgdiff 实用程序启动的某个子步骤/进程。我的一名团队成员正在比较 JDK 1.6 与 JDK 1.7 tar 文件,不知何故,即使在我杀死了主要的 pkgdiff / 相关 PID,并在两天前删除了 /tmp/Goslr0qb0e)。

一杀掉上面的PID(23019)……神子!我回来做生意了。

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/rootvg-root
                      7.7G  2.5G  4.9G  34% /

即使在我重新启动 Jenkins 实例之后,df 现在也正确地显示它对于根“/”分区/挂载/文件管理器有 4.9G 空闲空间,这证实了上述过程正在占用资源(现在我认为这是失控的) /“df”命令输出的范围)。

于 2014-10-24T17:16:45.487 回答
0

从技术上讲,文件描述符被一些正在运行的程序使用。一旦文件被应用程序关闭或应用程序结束时,可用空间将正确反映。

于 2014-12-08T11:06:09.397 回答