[教學] /tmp 設到 RadmDisk (tmpfs) 的方法 [論壇 - Ubuntu基本設定]
正在瀏覽:
1 名遊客
#1
[教學] /tmp 設到 RadmDisk (tmpfs) 的方法
jay
Ident: 75878 66430 9b1e1 2165b
2008/11/13 5:10
一、前言:
Ubuntu 預設就會將電腦一半的記憶體掛載為 /dev/shm
/dev/shm 即是 windows系統中常說的 RamDisk
RamDisk 有很多用途,比如:
將軟體弄到 RamDisk 執行,速度將會飛快
或者編譯程式時,在 RamDisk 編譯,速度超快
當然的, /tmp 若乾脆設到 RamDisk 裡面去,不僅是速度加快,還具有減少讀寫硬碟的效果(假如你的電腦是用 SSD 固態硬碟的話)
※ 註:/dev/shm 不完全是 RamDisk,若它使用超過電腦一半以上的 RAM,就會開始吃 SWAP。另外它沒用到的部份,會自動釋放出來給系統使用。
二、將 /tmp 設到 RamDisk (tmpfs) 的方法
基本上只要打以下指令,就能將 /tmp 綁定到 /dev/shm
※ 註:為何是用 mount --bind 綁定,而不是 ln -s 軟連結,原因是 /tmp 目錄,系統不給刪除。
不過每次開機都要打指令才能用,這樣是行不通的,必須讓它開機時自動執行,才會方便。
1.
用文書編輯器,建立 /etc/init.d/ramtmp.sh
內容如下:
2.
將此檔改權限為 755,使其可執行
終端機下的話,如下操作:(或是用視窗改也行)
3.
在 /etc/rcS.d 中,建立相關軟連結(捷徑),使其一開機就執行
以下指令僅能終端機操作
大功告成!重開機生效。
---------------------------------
三、說明
若想瞭解以上操作程序,是幹什麼,以及為什麼這麼做,
請看說明:
Linux 開機服務載入順序為:
1. BIOS
2. MBR
3. Linux Loader
4. Kernel, init (取得 run-level)
5. /etc/rc.d/
6. /etc/modules.conf
7. /etc/rc.d/rc[0-6].d
8. /etc/rc.d/rc.local
換句話說,寫入 rc.local 是行不通的,因為在那之前就啟動 x-window 了,而啟動 X 時會寫入一些東東到 /tmp,此時就會出錯,導致啟動失敗。
那麼到底該寫在哪裡好呢?
答案是 /etc/rcS.d
/etc/rcS.d 這個目錄中的檔案,開機時會被自動執行。另外它有一個特點:只有大寫 S 開頭的檔案名稱才會被執行,且多半都是採用軟連結(捷徑)的方式,連結到 /etc/init.d 目錄中的執行檔。(詳情請見該目錄中 README 英文說明)
S開頭後面的號碼,則代表執行的優先順序,由低至高依序執行,不一定是50可以隨高興更改,但要注意其它程序的優先問題,ramtmp.sh 需在 X11 啟動前執行,在 tmpfs 掛載後才執行。因此觀察後 S50 是比較恰當的。
四、參考資料:
-----------------------
tmp 掛到 tempfs 的方法:(這篇後半部份,不適合 Ubutnu)
http://phorum.study-area.org/index.php?action=printpage;topic=47984.0
酷學園,針對 rc (啟動批次檔)結構和 rcconf 的討論:
http://phorum.study-area.org/index.php?action=printpage;topic=47984.0
Ubuntu 預設就會將電腦一半的記憶體掛載為 /dev/shm
/dev/shm 即是 windows系統中常說的 RamDisk
RamDisk 有很多用途,比如:
將軟體弄到 RamDisk 執行,速度將會飛快
或者編譯程式時,在 RamDisk 編譯,速度超快
當然的, /tmp 若乾脆設到 RamDisk 裡面去,不僅是速度加快,還具有減少讀寫硬碟的效果(假如你的電腦是用 SSD 固態硬碟的話)
※ 註:/dev/shm 不完全是 RamDisk,若它使用超過電腦一半以上的 RAM,就會開始吃 SWAP。另外它沒用到的部份,會自動釋放出來給系統使用。
二、將 /tmp 設到 RamDisk (tmpfs) 的方法
基本上只要打以下指令,就能將 /tmp 綁定到 /dev/shm
mkdir /dev/shm/tmp chmod 1777 /dev/shm/tmp mount --bind /dev/shm/tmp /tmp
※ 註:為何是用 mount --bind 綁定,而不是 ln -s 軟連結,原因是 /tmp 目錄,系統不給刪除。
不過每次開機都要打指令才能用,這樣是行不通的,必須讓它開機時自動執行,才會方便。
1.
用文書編輯器,建立 /etc/init.d/ramtmp.sh
內容如下:
#!/bin/sh # RamDisk tmp PATH=/sbin:/bin:/usr/bin:/usr/sbin mkdir /dev/shm/tmp chmod 1777 /dev/shm/tmp mount --bind /dev/shm/tmp /tmp
2.
將此檔改權限為 755,使其可執行
終端機下的話,如下操作:(或是用視窗改也行)
sudo chmod 755 /etc/init.d/ramtmp.sh
3.
在 /etc/rcS.d 中,建立相關軟連結(捷徑),使其一開機就執行
以下指令僅能終端機操作
cd /etc/rcS.d sudo ln -s ../init.d/ramtmp.sh S50ramtmp.sh
大功告成!重開機生效。
---------------------------------
三、說明
若想瞭解以上操作程序,是幹什麼,以及為什麼這麼做,
請看說明:
Linux 開機服務載入順序為:
1. BIOS
2. MBR
3. Linux Loader
4. Kernel, init (取得 run-level)
5. /etc/rc.d/
6. /etc/modules.conf
7. /etc/rc.d/rc[0-6].d
8. /etc/rc.d/rc.local
換句話說,寫入 rc.local 是行不通的,因為在那之前就啟動 x-window 了,而啟動 X 時會寫入一些東東到 /tmp,此時就會出錯,導致啟動失敗。
那麼到底該寫在哪裡好呢?
答案是 /etc/rcS.d
/etc/rcS.d 這個目錄中的檔案,開機時會被自動執行。另外它有一個特點:只有大寫 S 開頭的檔案名稱才會被執行,且多半都是採用軟連結(捷徑)的方式,連結到 /etc/init.d 目錄中的執行檔。(詳情請見該目錄中 README 英文說明)
S開頭後面的號碼,則代表執行的優先順序,由低至高依序執行,不一定是50可以隨高興更改,但要注意其它程序的優先問題,ramtmp.sh 需在 X11 啟動前執行,在 tmpfs 掛載後才執行。因此觀察後 S50 是比較恰當的。
四、參考資料:
-----------------------
tmp 掛到 tempfs 的方法:(這篇後半部份,不適合 Ubutnu)
http://phorum.study-area.org/index.php?action=printpage;topic=47984.0
酷學園,針對 rc (啟動批次檔)結構和 rcconf 的討論:
http://phorum.study-area.org/index.php?action=printpage;topic=47984.0
#2
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
訪客
Ident: 75878 66430 9b1e1 2165b
2008/11/13 5:25
在加一個教學,
將 Firefox 網頁快取檔,設到 Ramdisk 的方法:
打開 Firefox 網址列輸入:about :conf
進入控制台
在空白處點滑鼠右鍵,[新增] - [字串]
字串名稱:browser.cache.disk.parent_directory
值:/dev/shm
重開 firefox 生效
隨便上網看網頁,然後去看 /dev/shm 會發現多出 Cache 目錄,這個就是 firefox 快取目錄。
將 Firefox 網頁快取檔,設到 Ramdisk 的方法:
打開 Firefox 網址列輸入:about :conf
進入控制台
在空白處點滑鼠右鍵,[新增] - [字串]
字串名稱:browser.cache.disk.parent_directory
值:/dev/shm
重開 firefox 生效
隨便上網看網頁,然後去看 /dev/shm 會發現多出 Cache 目錄,這個就是 firefox 快取目錄。
#3
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
訪客
Ident: 75878 66430 9b1e1 2165b
2008/11/13 5:27
不好意思上面打錯,是網址列輸入:about :config
進入 firefox 控制台
進入 firefox 控制台
#4
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
訪客
Ident: a7deb 701b7 da2fd 123f4
2008/11/13 10:59
還是打錯耶
這個about :config不能有空格耶
about :config 才對
這個about :config不能有空格耶
about :config 才對
#5
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
訪客
Ident: a7deb 701b7 da2fd 123f4
2008/11/13 11:02
奇怪
怎麼自動生空格
不過意思到了
有起到提示作用
也算功德無量
怎麼自動生空格
不過意思到了
有起到提示作用
也算功德無量
#6
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
plany
2008/11/13 19:05
我是參考其它方法,直接把/tmp改成ramfs,感覺上比較省事 XD
修改/etc/fstab,加入底下這行
修改/etc/fstab,加入底下這行
tmpfs /tmp tmpfs size=512M 0 0
#7
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
訪客
Ident: 75878 66430 9b1e1 2165b
2008/11/13 23:31
採用單一 /dev/shm 和 rcS.d 來啟動腳本,還是有好處的,好處是可以放一些綠色版的軟體到 RamDisk,讓它關機時自動壓縮備份,開機時自動解壓縮存回。
只不過 Linux 好像不流行綠色版的軟體,也不知道怎麼製作。可能是 atp 和 synatic新立得安裝太方便的關係吧。
不知有無網友可分享一下 firfox portable 之類的綠色版製作方法,將整個 firfox 放到 RamDisk,啟動肯定超級快。
另外也有其它應用,比如 mysql 資料庫,html 網站,整個放到 RamDisk 上面去,用 ln -s 軟連結欺騙作業系統,什麼設定都不必改,即可順利執行,呵呵,那網站速度一定嚇嚇叫。
但是 Ram 的資料關機無法保存,所以需要寫 shell script 腳本(自動執行批次檔,類似 autoexec.bat),讓它關機時備份,開機時回存。
只不過 Linux 好像不流行綠色版的軟體,也不知道怎麼製作。可能是 atp 和 synatic新立得安裝太方便的關係吧。
不知有無網友可分享一下 firfox portable 之類的綠色版製作方法,將整個 firfox 放到 RamDisk,啟動肯定超級快。
另外也有其它應用,比如 mysql 資料庫,html 網站,整個放到 RamDisk 上面去,用 ln -s 軟連結欺騙作業系統,什麼設定都不必改,即可順利執行,呵呵,那網站速度一定嚇嚇叫。
但是 Ram 的資料關機無法保存,所以需要寫 shell script 腳本(自動執行批次檔,類似 autoexec.bat),讓它關機時備份,開機時回存。
#8
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
訪客
Ident: ff3ca 8ce43 ee035 cdd1b
2008/11/14 1:15
※ 註:為何是用 mount --bind 綁定,而不是 ln -s 軟連結,原因是 /tmp 目錄,系統不給刪除。
我的可以刪除吖!
sudo rm -rf /tmp
sudo ln -s /dev/shm /tmp
我的可以刪除吖!
sudo rm -rf /tmp
sudo ln -s /dev/shm /tmp
#10
回覆: [教學] /tmp 設到 RadmDisk (tmpfs) 的方法
mosky
2009/5/30 12:30
史瑞克 寫到:
這篇能不能加到wiki裡面呀?
百年難得一見的好文章
wiki 是開放給「所有人」編輯的,
您希望的話,
只要在徵求過作者同意後,然後動動滑鼠就行囉。
您可以查看帖子.
您不可發帖.
您不可回覆.
您不可編輯自己的帖子.
您不可刪除自己的帖子.
您不可發起投票調查.
您不可在投票調查中投票.
您不可上傳附件.
您不可不經審核直接發帖.