免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3992 | 回复: 8
打印 上一主题 下一主题

[系统管理] [已解决]Centos 6.5版本,df -h出来的容量与du -sh的容量不对应是怎么会事呢? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-05-20 11:49 |只看该作者 |倒序浏览
本帖最后由 Drgcaosheng 于 2017-05-27 10:34 编辑

问题如题,df -h 出来的容量与du -sh 查看的容量信息不一样,是那里出了问题了吗?
下面分别是du -sh *与df -h出来的结果
  1. [root@mail /]# du -sh *
  2. 6.2M    bin
  3. 22M    boot
  4. 172K    dev
  5. 29M    etc
  6. 165G    home
  7. 130M    lib
  8. 26M    lib64
  9. 16K    lost+found
  10. 4.0K    media
  11. 4.0K    mnt
  12. 4.0K    opt
  13. du: 无法访问"proc/9139/task/9139/fd/4": 没有那个文件或目录
  14. du: 无法访问"proc/9139/task/9139/fdinfo/4": 没有那个文件或目录
  15. du: 无法访问"proc/9139/fd/4": 没有那个文件或目录
  16. du: 无法访问"proc/9139/fdinfo/4": 没有那个文件或目录
  17. 0    proc
  18. 0    result.txt
  19. 201M    root
  20. 15M    sbin
  21. 4.0K    selinux
  22. 4.0K    srv
  23. 0    sys
  24. 40K    tmp
  25. 6.3G    usr
  26. 349M    var
  27. [root@mail /]
复制代码
  1. [root@mail /]# df -h
  2. Filesystem                    Size  Used Avail Use% Mounted on
  3. /dev/mapper/VolGroup-lv_root   50G   44G  3.4G  93% /
  4. tmpfs                         2.4G     0  2.4G   0% /dev/shm
  5. /dev/sda1                     485M   32M  428M   7% /boot
  6. /dev/mapper/VolGroup-lv_home  586G  165G  392G  30% /home
  7. [root@mail /]# cat /etc/redhat-release
  8. CentOS release 6.5 (Final)
  9. [root@mail /]#
复制代码

以上是相关查询命令的输出,下面是硬盘fdisk -l的输出信息
  1. [root@mail /]# fdisk -l

  2. Disk /dev/sda: 536.9 GB, 536870912000 bytes
  3. 255 heads, 63 sectors/track, 65270 cylinders
  4. Units = cylinders of 16065 * 512 = 8225280 bytes
  5. Sector size (logical/physical): 512 bytes / 512 bytes
  6. I/O size (minimum/optimal): 512 bytes / 512 bytes
  7. Disk identifier: 0x00014e84

  8.    Device Boot      Start         End      Blocks   Id  System
  9. /dev/sda1   *           1          64      512000   83  Linux
  10. Partition 1 does not end on cylinder boundary.
  11. /dev/sda2              64       65271   523774976   8e  Linux LVM

  12. Disk /dev/sdb: 161.1 GB, 161061273600 bytes
  13. 255 heads, 63 sectors/track, 19581 cylinders
  14. Units = cylinders of 16065 * 512 = 8225280 bytes
  15. Sector size (logical/physical): 512 bytes / 512 bytes
  16. I/O size (minimum/optimal): 512 bytes / 512 bytes
  17. Disk identifier: 0x00000000


  18. Disk /dev/mapper/VolGroup-lv_root: 53.7 GB, 53687091200 bytes
  19. 255 heads, 63 sectors/track, 6527 cylinders
  20. Units = cylinders of 16065 * 512 = 8225280 bytes
  21. Sector size (logical/physical): 512 bytes / 512 bytes
  22. I/O size (minimum/optimal): 512 bytes / 512 bytes
  23. Disk identifier: 0x00000000


  24. Disk /dev/mapper/VolGroup-lv_swap: 5217 MB, 5217714176 bytes
  25. 255 heads, 63 sectors/track, 634 cylinders
  26. Units = cylinders of 16065 * 512 = 8225280 bytes
  27. Sector size (logical/physical): 512 bytes / 512 bytes
  28. I/O size (minimum/optimal): 512 bytes / 512 bytes
  29. Disk identifier: 0x00000000


  30. Disk /dev/mapper/VolGroup-lv_home: 638.5 GB, 638494703616 bytes
  31. 255 heads, 63 sectors/track, 77625 cylinders
  32. Units = cylinders of 16065 * 512 = 8225280 bytes
  33. Sector size (logical/physical): 512 bytes / 512 bytes
  34. I/O size (minimum/optimal): 512 bytes / 512 bytes
  35. Disk identifier: 0x00000000

  36. [root@mail /]#
复制代码

之前也使用 badblocks 进行扫描了下,坏的块为0。
实在是找不出来相关的原因了,遂发出来希望路过的大神指点一下。
在此步骤之前也曾怀疑是否是因为有删除文件而没有释放出来而导致的,然后删除了一些文件,容量间也会直接减少,也有进行重启过服务器,小弟菜鸟。在发贴期间仍也会不停的自已进行寻找答案。

谢谢!

----------------------------------------------------处理步骤--------------------------------------------------------------------------------
以下跟上排查的步骤:
先使用
#lsof |grep deleted
这个命令看下有没有什么进程正在写。
[root@mail /]# lsof |grep deleted
dovecot 1256 root 110u REG 253,0 0 3148313 /usr/local/u-mail/data/dovecot/run/dovecot/login-master-notify05d38466580f94c5 (deleted)

dovecot 1256 root 127u REG 253,0 0 3148357 /usr/local/u-mail/data/dovecot/run/dovecot/login-master-notifyd14e8b6fc98a9e9f (deleted)

dovecot 1256 root 130u REG 253,0 0 3148662 /usr/local/u-mail/data/dovecot/run/dovecot/login-master-notify7400f77e8b2eb8b1 (deleted)

mysqld 1652 umail_mysql 3w REG 253,0 38989980588 1310730 /tmp/umail_mysql.log (deleted)

imap-logi 5024 nobody 4u REG 253,0 0 3148662 /usr/local/u-mail/data/dovecot/run/dovecot/login-master-notify7400f77e8b2eb8b1 (deleted)

httpd 11983 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 15024 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 20518 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 21333 root 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 21950 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 23138 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 27809 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

imap 31025 umail 13u REG 253,2 27458 9712981 /home/mailbox/fslzz.com.cn/0/zhudg/dovecot-uidlist (deleted)

httpd 31924 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 31925 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

httpd 31926 umail_apache 10u REG 253,0 0 1310725 /tmp/ZCUDSP6pa7 (deleted)

[root@mail /]#

看到其中有个进程有异常大小也比较大。根据ID查相关的进程,然后得知这个文件是mysql的general_log这个日志文件开启所导致的。
找到:***/mysql/my.cnf 这个配置文件,将里面的
这两行注释掉。

并且重启umail_mysqld的服务,然后再使用df -h查看一下进程。


看到进程及容量已经被处理掉了。恢复正常。不易






求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
2 [报告]
发表于 2017-05-25 16:53 |只看该作者


du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和。

df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。




df一般读取superblock
du是计算每个inode
所以df不能跟du直接比较


------------------------

论坛徽章:
0
3 [报告]
发表于 2017-05-25 17:37 |只看该作者
lsof | grep delete   可能有文件已经被删除但是还没有被系统释放的空间,结束掉进程就应该可以了

论坛徽章:
0
4 [报告]
发表于 2017-05-26 08:47 |只看该作者
jiang900501 发表于 2017-05-25 17:37
lsof | grep delete   可能有文件已经被删除但是还没有被系统释放的空间,结束掉进程就应该可以了

恩,已经根据这个思路处理过了。

论坛徽章:
0
5 [报告]
发表于 2017-05-26 08:48 |只看该作者
lyhabc 发表于 2017-05-25 16:53
du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前存在的,没 ...

恩。原理是这样子的,之前是找不到怎么找出已经标记为删除,但是没有删除的文件。

论坛徽章:
0
6 [报告]
发表于 2017-05-26 08:49 |只看该作者
Drgcaosheng 发表于 2017-05-26 08:48
恩。原理是这样子的,之前是找不到怎么找出已经标记为删除,但是没有删除的文件。

已经处理好了,谢谢!

论坛徽章:
0
7 [报告]
发表于 2017-05-26 11:12 |只看该作者
可以把你的解决方法留下,供后来人参考。

论坛徽章:
0
8 [报告]
发表于 2017-05-27 09:56 |只看该作者
jiang900501 发表于 2017-05-26 11:12
可以把你的解决方法留下,供后来人参考。

好,跟上回复。

求职 : Linux运维
论坛徽章:
203
拜羊年徽章
日期:2015-03-03 16:15:432015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:57:092015小元宵徽章
日期:2015-03-06 15:58:182015年亚洲杯之约旦
日期:2015-04-05 20:08:292015年亚洲杯之澳大利亚
日期:2015-04-09 09:25:552015年亚洲杯之约旦
日期:2015-04-10 17:34:102015年亚洲杯之巴勒斯坦
日期:2015-04-10 17:35:342015年亚洲杯之日本
日期:2015-04-16 16:28:552015年亚洲杯纪念徽章
日期:2015-04-27 23:29:17操作系统版块每日发帖之星
日期:2015-06-06 22:20:00操作系统版块每日发帖之星
日期:2015-06-09 22:20:00
9 [报告]
发表于 2017-05-27 23:06 |只看该作者
lsof |grep delete
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP