在调服务器时,突然发现服务器上存储空间尽然用完了,/目录我分配了22G,怎么可能用完呢,但是用df命令查看时确实已经用了100%了,
这下吓我一跳,马上看哪个地方用了这么多。在/目录下执行命令 du -sh *, 发现/opt 占了18G(我的apache服务器装在这个目录下),立刻进入,发现apache的log目录 占了17G,终于找到罪魁祸首了,其中那个mod_jk.log有17多个G大,真邪门,一个日志文件尽然能写到17个G(我的官网主页是jsp的,于是用mod_jk做了重定向,apache把收到的jsp信息全重定向到tomcat,并在mod_jk.log中记录),我毫不犹豫的删除了这个日志。 理论上说空间一下子就能释放17多个G。但当我再次查看所剩空间是,哇靠,尽然还是用了100%,这个真的邪门了。明明刚刚删了那么大的一个东西啊,而且后来我再次查看/目录下的文件夹大小时,确实已经删除了那个大log了呀。正在百思不得其解的时候,难道是apache惹的祸,果断重启apache。果然,立刻整个磁盘使用率就将降下来了。 这次经验必须要记下来,看来删apache的日子,并不能立刻释放磁盘空间,但是为什么不能立刻释放磁盘空间呢。后来了解到,当删除log后,而apache一直使用这原来的那个log文件描述符,而原来这个描述符所对应的log文件所在的磁盘空间一直是被占用的,即使现占用这块空间的log被删掉了。只有当重启apache后,这个文件描述符被释放,从而原来被占用的空间才算彻底被释放,可以用来存储其他文件啦。 (责任编辑:IT) |