簡體   English   中英

Linux 是否有緩存 memory?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM