Linux 上 RAMFS 和 TMPFS 的介紹
使用 ramfs 或 tmpfs,您可以分配一部分物理內存用作分區。你可以掛載這個分區,像硬盤分區一樣開始讀寫文件。由于您將讀取和寫入 RAM,因此速度會更快。
當重要進程由于磁盤寫入而變得非常緩慢時,您可以選擇 ramfs 或 tmpfs 文件系統將文件寫入 RAM。
tmpfs 和 ramfs mount 都將為您提供從主內存快速讀取和寫入文件的能力。當您在一個小文件上測試時,您可能看不到巨大的差異。只有當您將大量數據寫入具有其他處理開銷(例如網絡)的文件時,您才會注意到差異。
1.如何掛載Tmpfs
# mkdir -p /mnt/tmp # mount -t tmpfs -o size=20m tmpfs /mnt/tmp
下面 df -k 的最后一行顯示了上面掛載的 /mnt/tmp tmpfs 文件系統。
# df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 32705400 5002488 26041576 17% / /dev/sda1 194442 18567 165836 11% /boot tmpfs 517320 0 517320 0% /dev/shm tmpfs 20480 0 20480 0% /mnt/tmp
2. 如何掛載 Ramfs
# mkdir -p /mnt/ram # mount -t ramfs -o size=20m ramfs /mnt/ram
下面掛載命令的最后一行顯示了上面掛載的 /mnt/ram ramfs 文件系統。
# mount /dev/sda2 on / type ext3 (rw) proc on /proc type proc (rw) sysfs on /sys type sysfs (rw) devpts on /dev/pts type devpts (rw,gid=5,mode=620) /dev/sda1 on /boot type ext3 (rw) tmpfs on /dev/shm type tmpfs (rw) none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw) sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) fusectl on /sys/fs/fuse/connections type fusectl (rw) tmpfs on /mnt/tmp type tmpfs (rw,size=20m) ramfs on /mnt/ram type ramfs (rw,size=20m)
您可以通過在/etc/fstab 中添加一個條目,在引導期間掛載 ramfs 和 tmpfs?。
3. Ramfs 與 Tmpfs
主要是 ramfs 和 tmpfs 做同樣的事情,只有很少的細微差別。
Ramfs 將動態增長。因此,您需要控制寫入數據的過程,以確保 ramfs 不會超過系統中可用的 RAM 大小。假設您的系統上有 2GB 的 RAM,并創建了一個 1GB 的 ramfs 并掛載為 /tmp/ram。當 /tmp/ram 的總大小超過 1GB 時,您仍然可以向其中寫入數據。系統不會阻止您寫入超過 1GB 的數據。但是,當它超過 2GB 的總 RAM 大小時,系統可能會掛起,因為 RAM 中沒有地方可以保存數據。
Tmpfs 不會動態增長。它不允許您寫入超過您在安裝 tmpfs 時指定的大小。因此,您無需擔心控制寫入數據的進程以確保 tmpfs 不會超過指定的限制。它可能會給出類似于“設備上沒有剩余空間”的錯誤。
Tmpfs 使用swap。
Ramfs 不使用交換。
4. Ramfs 和 Tmpfs 的缺點
由于 ramfs 和 tmpfs 都在寫入系統 RAM,因此一旦系統重新啟動或崩潰,它就會被刪除。因此,您應該編寫一個進程,以定期從 ramfs/tmpfs 中提取數據到磁盤。您還可以編寫一個進程,在系統關閉時將 ramfs/tmpfs 中的數據寫入磁盤。但是,這在系統崩潰時對您沒有幫助。
如果您希望您的進程寫入速度更快,那么選擇 tmpfs 是更好的選擇,并且可以預防系統崩潰。
Linux 任務調度
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。