1、线上服务器突然先后Nagios告警,/tmp目录使用率100%.立即上/tmp目录查看哪些文件占了空间,使用du -sh命令查看/tmp文件占用情况,发现占用很小。df -h命令明明显示 /tmp占满了。
2、原来都被打开的文件占满了,而这些文件都是deleted状态。看起来和puppet有关,puppet上次更新时间刚好为20130108.但上关骇脘骱次puppet更新完之后,只有部分进程有这个临时文件,部分进程是没有这个临时文件的。
3、通过一番推测,最后发现是用puppet脚本启动这些进程时,这些进程的启动脚本会往控制台输出大量日志信息。这些日志信息最后写到了临时文件中,越积越多,最后占满了/tmp目录。
4、误操作,导致了某些进程在没有执行完成的时候被kill掉了,但是缓存中的程序没有释放,仍然在运行,这会产生一些临时文件占用大量的磁盘空间资源,这种现象的特点是爆发式的增长,在很短时间内就将磁盘空间占满。
5、我碰到过那种程序在写一个日志,但是删除日志后空间不释放的问题。这个是linux本身的机制引起的,只需要停止相关的程序空间就会释放的)其实并不是你的磁盘的空间被占用,而是你的磁盘的节点耗尽了。
6、当进程打开了某个文件时,只要该进程保持打患束锍瓜开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描桢郓羼抱述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录条目。