Linux

為 /tmp 使用 tmpfs + 一個非常大的交換分區而不是正常文件系統?

  • November 13, 2019

我有 Linux 伺服器,並且有一個 500GB 的備用磁碟分區。我想對其進行格式化並將其用於/tmp。伺服器偶爾會執行一些大型數據處理任務,因此 /tmp 可能會保存 GB 的臨時數據。

然後我有了一個想法,我可以將其添加為交換分區並將 /tmp 掛載到 tmpfs。這個想法合理嗎?

伺服器有 6GB 的 RAM,所以在大多數情況下 /tmp 上的數據只會在 RAM 中,具有明顯的速度優勢。問題是,如果 /tmp 上有 10-20GB 的數據,系統將如何執行?與簡單地將 /tmp 掛載到 ext4 分區相比,性能如何?感謝幫助。

**編輯:**很明顯,當 tmpfs 的使用達到 RAM 限制時,系統將開始換出記憶體。但是 Linux 是否足夠聰明,可以交換 tmpfs 數據並將“正常”數據保存在 RAM 中?如果是,那麼我想它可以合理地表現。如果沒有,那麼整個系統將受到嚴重影響。

這不是一個好主意TM。

/tmp像這樣安裝的大分區會很好(來自您的/etc/fstab

tmpfs  /dev/tmp  tmpfs  defaults,nosuid,nodev,noexec,noatime,nodiratime,size=6000M 0 0

您可以將外部驅動器添加為巨大的交換分區

/dev/sdb1  swap  swap  defaults  0 0

當達到極限時,您的機器將開始將頁面從 RAM 交換到磁碟——此時,平均負載將達到頂峰,機器將停止執行。

以任何方式依賴 SWAP 都是一個壞主意,你最好賣掉你的 500GB 驅動器並簡單地購買更多的 RAM——它很便宜。

總之

如果你真的想使用你的 500GB 磁碟,你可以/tmp用禁用 atime 和 diratime 的非日誌文件系統掛載你的 500GB 磁碟(例如ext2)。這將比處理正在執行的機器SWAP快得多

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