[英]Does Linux have cache memory?
我在終端上運行模擬,由於磁盤空間問題,模擬沒有通過 go。 (它報告“設備上沒有剩余空間”)然后我們清理了一些空間並在同一個終端上運行模擬。 但是,它仍然抱怨空間問題。 當我們在一個新的終端上運行時,模擬就通過了。 因此,我想了解造成這種情況的原因。 請幫忙
謝謝你。
這是 linux 中的常見問題。
如果一個進程打開了一個文件但沒有關閉它,刪除該文件只會從它所在的目錄中刪除目錄條目(認為名稱)。在該文件被進程關閉或進程終止之前,不會回收磁盤空間.
要查找這些文件,您可以查看 /proc 文件系統。 每個正在運行的進程都可以通過它的進程 id (pid) 找到。
在這里,我正在運行一個 python 程序,它打開了一個文件並且什么都不做。 如果我使用ps
查找進程的 pid 並使用 cd int /proc/<pid>/fd
我可以看到打開的文件描述符和打開的文件的名稱:
$ pwd
/proc/38246/fd
$ ls -l
total 0
lrwx------ 1 x x 64 Sep 8 15:39 0 -> /dev/pts/0
lrwx------ 1 x x 64 Sep 8 15:39 1 -> /dev/pts/0
lrwx------ 1 x x 64 Sep 8 15:39 2 -> /dev/pts/0
lr-x------ 1 x x 64 Sep 8 15:39 3 -> /tmp/test
如果我刪除文件 /tmp/test 我會看到:
$ rm /tmp/test
$ ls -l
total 0
lrwx------ 1 x x 64 Sep 8 15:39 0 -> /dev/pts/0
lrwx------ 1 x x 64 Sep 8 15:39 1 -> /dev/pts/0
lrwx------ 1 x x 64 Sep 8 15:39 2 -> /dev/pts/0
lr-x------ 1 x x 64 Sep 8 15:39 3 -> /tmp/test (deleted)
通過/proc/*/fd/
搜索已刪除的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.