Linux

ramfs 和 tmpfs 之間的性能差異

  • May 8, 2015

我需要為大約 10 GB 的數據設置一個記憶體儲存系統,其中包含許多 100 kb 的單個文件(圖像)。會有很多讀取和相當週期性的寫入(添加新文件,刪除一些舊文件)。

現在,我知道tmpfs的行為類似於正常文件系統,例如,您可以使用df檢查可用/已用空間,這是一個不錯的功能。但是,如果ramfs會在 IO 操作的速度方面提供一些優勢,我很感興趣。我知道在使用ramfs時我無法控制消耗的記憶體大小,並且如果它完全消耗了可用 RAM,我的系統可能會掛起,但這在這種情況下不會成為問題。

總而言之,我很感興趣:

  • 性能方面,哪個更快:ramfstmpfs(可能是為什麼)?

  • tmpfs何時使用交換空間?它是否將已保存的數據移動​​到交換(為目前正在執行的其他程序釋放 RAM)或者如果當時沒有可用的 RAM 則僅移動新數據?

我的建議:

在正常條件下測量和觀察現實生活中的活動。

這些文件不太可能一直都需要並從記憶體中提供。但是有一個名為vmtouch的好工具可以告訴您在給定時刻記憶體中的內容。您還可以使用它將某些目錄或文件鎖定到記憶體中。所以看看一些經常使用後的情況。對於這種情況,不需要使用 tmpfs 和 ramfs。

見:http ://hoytech.com/vmtouch/

我想您會驚訝地發現最活躍的文件可能已經駐留在記憶體中。


就 tmpfs 與 ramfs 而言,沒有明顯的性能差異。存在操作上的差異。一個真實的案例是 Oracle,其中 ramfs 用於允許 Oracle 管理 RAM 中的數據,而不會有被交換的風險。tmpfs 數據可以在記憶體壓力下被換出。在動態調整大小和修改設置方面也存在差異。

引用自:https://serverfault.com/questions/590124