经验累积:

1.查看系统磁盘存储情况  df -hl

解决方法:

        如果有文件夹大小不正常就一步一步找到那个文件夹的位置

        1.清空异常大小的文件

cat /dev/null > /你的文件路径

        2.删除大小异常的文件

        删除之后再执行  df -hl 还是占用率不正常那原因是:

        通过rm删除文件将会从文件系统的目录结构上解除链接(unlink)如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。(重启可以解决因为重启之后所有进程都断了但是运行服务器禁止重启)

       解决方法:       

      获得一个已经被删除但是仍然被应用程序占用的文件列表

lsof |grep deleted

      1. kill掉相关进程(不推荐,因为进程杀掉之后需要在重启必要的进程,而且必要的进程死掉几秒可能会影响项目执行问题)

      2.停掉正在使用这个文件的应用(或服务),让os自动回收磁盘空间(推荐)
原因:

        当linux打开一个文件的时候,Linux内核会为每一个进程在/proc/ 『/proc/nnnn/fd/目录(nnnn为pid)』建立一个以其pid 
为名的目录用来保存进程的相关信息,而其子目录fd保存的是该进程打开的所有文件的fd(fd:file descriptor)。

kill进程是通过截断proc文件系统中的文件可以强制要求系统回收分配给正在使用的的文件。 

 

Logo

更多推荐