昨天写程序,尝试上传文件到wevdav服务器中,但是nginx反代一直报500错误,就算不反代直接访问对应端口也会报一些很奇怪的错误,当时百思不得其解,后来登入服务器后无意之间瞟了一眼根目录占用,达到了95%左右,十分反常,随后排查问题,发现了一个贼大的aria2日志。随后想起来之前由于错误操作让服务器下载了一个包含几千个视频的种子。。然后它第二天炸了,我没管,重启了aria2服务后就正常使用了。
1 | ... |
之后我通过rm删除了这个日志。但是根目录占用没有丝毫变化,磁盘空间扩大,随后查资料得知在linux中,rm删除的是文件名字和inode的链接,不是删除磁盘上对应的文件,但是当文件链接数和引用数都为0后,linux才会回收inode,把对应的空间释放出来。
文件系统在回收inode时,除了判断到inode的链接数为0,还要判断到inode的引用数为0,当一个进程打开一个文件时,它的inode的引用数就会加1,所以这里虽然链接数为0但引用数为1,文件系统还是不会删除inode,那么什么时候删除inode呢,答案是进程结束时引用数归0时。
————————————————
版权声明:本文为CSDN博主「王仁勇」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/wry2008wry/article/details/121569024
虽然我完全不懂,但在我这个环境下大概就是rm 删除日志后需要手动重启aria2服务才能释放空间。
然后我又随手测了一下我写的程序,它突然就完全正常了。。。看来不让存储空间占满是很重要的啊,不然总会在奇怪的地方产生问题。