在Linux下使用ramdisk…

來源:互聯網
上載者:User
一、什麼是RamDisk

  顧名思義,Ram:記憶體,Disk:磁碟,RamDisk就是指使用你的一部分記憶體空間來類比出一個硬碟分區。不過這在硬碟越來越便宜的今天好象並不是很有用,但現在記憶體也越來越便宜呀,對於一些我們想讓其訪問速度很高的情況下,還是可以試一試的。

  二、建立一個RamDisk

  其實建立一個RamDisk是一件很簡單的事,由於RedHat Linux 6.0在預設安裝下就支援了RamDisk,你只需要格式化一個RamDisk,並將其mount到某一個目錄上就可以了。

  1、 查一下所有可用的ramdisk:

ls –al /dev/ram*

  這就會列出你現在可用的ramdisk,這些ramdisk現在還不佔用記憶體,除非你對它進行格式化。

  2、 建立一個RamDisk:

mke2fs /dev/ram0

  執行該命令將出現以下提示

mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09Linux ext2 filesystem formatFilesystem label=1024 inodes, 4096 blocks204 blocks (4.98%) reserved for the super userFirst data block=1Block size=1024 (log=0)Fragment size=1024 (log=0)1 block group8192 blocks per group, 8192 fragments per group1024 inodes per group

  如果該操作執行失敗,那麼有可能是因為你的核心不支援ramdisk,這時你只有重新設定、編譯核心。在配置時將CONFIG_BLK_DEV_RAM設定為Enable。

  3、 將其mount上來使用:

  mkdir /tmp/ramdisk0 建立一個目錄

  mount /dev/ram0 /tmp/ramdisk0 將其mount到剛才建立的目錄上

  這樣,我們就可以使用這個建立的RamDisk--/tmp/ramdisk0

  另外,我們可以執行df命令來查看一下該RamDisk的大小:

>df -k /dev/ram0Filesystem 1k-blocks Used Available Use% Mounted on/dev/ram0 3963 13 3746 0% /tmp/ramdisk0

  要注意的一點是:由於這個部分是記憶體,因此在系統重新啟動的時候,將重新整理這個地區。所以不要將任何沒有拷貝的資料放在這個地區。如果你對這個目錄進行了修改,並且需要保留這些修改,採取一些辦法進行備份。也就是說,這個目錄只能用於為了提高訪問速度而暫時儲存資料的地方。

  三、建立大小合適的RamDisk

  上面我們建立了一個RamDisk,但是無法指定大小,現在我們來學習如何建立大小合適的RamDisk。

  1、 使用LILO配置:

  我們在lilo.conf檔案中加入一行:

  ramdisk_size=10000 (如果是老版核心,則寫ramdisk=10000)

  然後運行 /sbin/lilo 產生新的LILO。

  這樣當你重新啟動電腦之後,ramdisk的預設大小將會是10M。

  2、使用/etc/conf.modules配置:

  如果你的核心是以模組的形式編譯ramdisk的話,那麼就可以在載入的時候決定ramdisk的大小。也就是可以通過修改/etc/conf.modules 的選項設定來做到,加入:

options rd rd_size=10000

  當然也可以在命令列中指定參數給ismod來實現:

insmod rd rd_size=10000

  當使用以上兩種方法建立了合適大小的ramdisk時,我們還需要執行以下命令來使用它:

mke2fs /dev/ram0mkdir /tmp/ramdisk0mount /dev/ram0 /tmp/ramdisk0

  而當不使用時,應執行:

umount /tmp/ramdisk0

  若是使用insmod來載入模組的,應該再執行:

rmmod rd

  四、使用RamDisk的一個執行個體

  下面,我們通過一個使用Ramdisk做WEB伺服器的執行個體來說明其應用。

  1、 首先將WEB伺服器移到另外一個地方

mv /home/httpd/ /home/httpd_realmkdir /home/httpdmkdir /home/httpd/cgi-binmkdir /home/httpd/htmlmkdir /home/httpd/icons

  2、 將以下命令加入到/etc/rc.d/init.d/httpd.init中去:

/sbin/mkfs -t ext2 /dev/ram0/sbin/mkfs -t ext2 /dev/ram1/sbin/mkfs -t ext2 /dev/ram2mount /dev/ram0 /home/httpd/cgi-binmount /dev/ram1 /home/httpd/iconsmount /dev/ram2 /home/httpd/htmltar -C /home/httpd_real -c . | tar -C /home/httpd -x

  這樣就可以了,但是請記住,你更新資料時,應更新httpd_real目錄,而不要更新httpd目錄,否則在系統重新啟動時,所有的更新都將丟失。你最好設定一個cron進程,讓其監視httpd_real是否有改變,一有改變就將其複製到ramdisk中去。

  五、使用RamDisk做/tmp目錄

  我還想推薦一個更酷的方法,如果你的記憶體太多,那麼可以將其中一部分做為/tmp目錄,這樣將大大提高你的系統執行速度。而且,/tmp將會在系統重新啟動時被刪除,多麼愜意呀。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.