公司的一个生产应用发生异常,无法正常运行。当时应用系统异常后,登录主机发现/tmp文件系统写满了,删除了一些不用的文件后,应用正常,但df -k 查看后发现 /tmp 剩余空间仍然在不断增长,而且速度很快。看来没有找到问题的实质。最后应用开发人员的协助下,发现是一个应用进程在不断的向 /tmp 中写一个临时文件,这个临时文件不断增大,最终将 /tmp 撑爆了。总结了如下:
1. 先看看 /tmp 下哪些文件大小不正常呢?
find /tmp -size +100000000c -ls (查看/tmp下大于100M的文件)
2. 那么是哪个文件在频繁的写入呢?
filemon -o filemon.out -O all; sleep 30; trcstop (使用filemon查看文件系统的IO)。
分析生成的filemon.out文件可以判断是哪个文件的IO最大。
3. 那么是谁,又是哪个进程在写这个文件呢?
fuser -u filename (查看filename是被谁的什么进程(pid)使用)
找到了文件和进程,kill掉进程,删除文件就可以解决问题了。
有的时候在没有kill进程的情况下,删除了文件,这是空间是不会释放的,使用
fuser -d /tmp
可以看到那个仍然在写已删除文件的进程。kill掉进程,空间释放。
=====================================================================
du -sm * ,看那个文件/文件夹大 ,然后向下寻找。
topas dd命令
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25462274/viewspace-1873722/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25462274/viewspace-1873722/