网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

lsof处理df和du大小不一致的问题

APP服务器根满了,一直报警

我们提供的服务有:成都网站建设、成都网站设计、微信公众号开发、网站优化、网站认证、昌图ssl等。为超过千家企事业单位解决了网站和推广的问题。提供周到的售前咨询和贴心的售后服务,是有科学管理、有技术的昌图网站制作公司

df显示根分区已经使用了90%的空间,但是du根分区总和只有40G左右,该分区应该没有大量小文件,所以应该不会产生大量小文件导致的block写满的问题.

网上搜了下发现有可能是有程序操作大文件导致文件句柄没有释放,这些被程序占用着的文件句柄会被df认为是存在硬盘上的.

网上是这么解释的:

du是把目录下所有的文件统计另起来,而df是从文件系统考虑,统计被分配出去的空间,并且包括被程序申请占用的空间.

如果看来,/目录下应该有大量空间被某个程序占用了.

处理方法 lsof /|grep delete

COMMAND    PID       USER   FD   TYPE    DEVICE   SIZE/OFF              NODE NAME

mongod     2842       root   15u   REG      251,0   536870912    6296116 /var/lib/MongoDB/vida_log.3 (deleted)
mongod     2842       root   16u   REG      251,0   536870912    6306826 /var/lib/mongodb/vida_log.4 (deleted)
mongod     2842       root   10u   REG      251,0   536870912    6345649 /var/lib/mongodb/vida_log.0 (deleted)
mongod     2842       root   11u   REG      251,0   536870912    6345658 /var/lib/mongodb/vida_log.1 (deleted)
mongod     2842       root   12u   REG      251,0   536870912    6345659 /var/lib/mongodb/vida_log.2 (deleted)
ruby      25149     vidafm    3w   REG      251,0     5594054      7351133 /var/www/vida_api_120614/log/development.log.4 (deleted)
ruby      26599     vidafm    3w   REG      251,0     5594054      7351133 /var/www/vida_api_120614/log/development.log.4 (deleted)
nginx      9388     nobody   82u   REG      251,0       90112        6162236 /opt/nginx/client_body_temp/0004778814 (deleted)

可以看到SIZE这行的文件都特别大,而且已经是delete状态,说明文件已经被删除但是文件句柄未被程序释放.

kill掉这些进程即可释放空间

重新df -h后发现可用空间已经变为了90G+了,非常舒服.

网上对df和du的另一种解释

du -sh命令通过将指定文件系统中所有的目录,符号链接和文件使用的块数累加得到该文件系统使用的总块数
而df命令通过查看文件系统磁盘块分配图得出总块数与剩余块数.
文件系统分配其中的一些磁盘块用来记录它自身的一些数据,如i节点,磁盘分布图,间接块,超级块等.这些数据对大多数用户级的程序来说是不可见的,通常称为Meta Data.
du命令是用户级的程序,它不考虑Meta Data,而df命令则查看文件系统的磁盘分配图并考虑Meta Data.

因此正常情况下,df计算的USED空间会比du计算的结果要稍大.


本文标题:lsof处理df和du大小不一致的问题
文章起源:http://bjjierui.cn/article/pegppj.html

其他资讯