萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux tmpfs 實戰指南:記憶體檔案系統用途、特性與三大容量調整法

tmpfs 是 Linux 核心支援的虛擬記憶體檔案系統,將資料直接存放於 RAM(含 Swap),讀寫速度遠超傳統磁碟。本文詳細介紹 tmpfs 運作原理、適用場景,以及三種調整容量的實務方法,助您善用記憶體加速系統與應用程式。

tmpfs 核心特性

  • 非區塊裝置:無需 mkfs 格式化,掛載即用。
  • 儲存於虛擬記憶體 (VM):VM = 實體記憶體 (RAM) + Swap 空間。
  • 動態佔用:設定上限 1GB 但只放 100MB 檔案,實際佔用 100MB RAM,剩餘 900MB 仍可供其他程式使用。
  • 預設大小 = RAM 一半:如 1GB RAM 預設 tmpfs 512MB。
  • 刪檔即釋放:移除檔案瞬間歸還 VM 資源。

主要應用場景

  1. Oracle AMM (Automatic Memory Management):使用 /dev/shm 作為共享記憶體區。
  2. 程式暫存檔加速:將高頻讀寫的暫存目錄(如 /tmp、應用快取目錄)掛載為 tmpfs,大幅降低 I/O 延遲。
  3. 高效能快取層:Nginx fastcgi_cache、PHP session、資料庫暫存表等。

tmpfs 架構示意圖

三種調整 tmpfs 容量的方法

方法一:直接掛載至指定目錄(臨時/測試適用)

mount -t tmpfs -o size=20m tmpfs /tmp

立即生效,但重開機失效。df -h 可見新掛載點。

注意:掛載前若目錄有檔案正在被使用,可能導致服務異常。

方法二:修改 /etc/fstab 永久生效(生產環境推薦)

編輯 /etc/fstab,在 tmpfs 行加入 size=XXX 參數:

tmpfs /dev/shm tmpfs defaults,size=600M 0 0
tmpfs /tmp tmpfs defaults,size=25M 0 0

執行 mount -a 測試無誤後重開機驗證。

方法三:綁定掛載 /dev/shm 子目錄至 /tmp(較繁瑣)

mkdir /dev/shm/tmp
chmod 1777 /dev/shm/tmp
mount --bind /dev/shm/tmp /tmp

此法使 /tmp 共享 /dev/shm 空間,但不如方法二彈性。

實務建議

  • 生產機建議用方法二,集中管理且持久化。
  • 容量設定不宜超過實體 RAM 70%,避免觸發大量 Swap 導致效能驟降。
  • 監控 df -h /dev/shm 與 free -h 確保記憶體使用健康。

總結:tmpfs 以記憶體速度提供檔案系統介面,善用它能顯著提升高 I/O 應用效能。三種調整法各有適用場景,推薦以 /etc/fstab 統一管理。

copyright © 萬盛學電腦網 all rights reserved