无码人妻精品一区二区三区9厂-国产精品人人做人人爽人人添-在线永久免费观看黄网站-国产精品久久久久一区二区三区

首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
中華工控網首頁
  P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
  D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
  電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
Linux下創建和使用RamDisk的技巧
深圳市盈鵬飛科技有限公司
收藏本文     查看收藏
.2 Linux下創建和使用RamDisk的技巧
先介紹一下什么是RamDisk。RamDisk實際是從內存中劃出一部分作為一個分區使用,換句話說,就是把內存一部分當做硬盤使用,你可以向里邊存文件。那么為什么要用RamDisk呢?假設有幾個文件要頻繁的使用,你如果將它們加到內存當中,程序運行速度會大副提高,因為內存的讀寫速度遠高于硬盤。況且內存價格低廉,一臺PC有128M或256M已不是什么新鮮事。劃出部分內存提高整體性能不亞于更換新的CPU。何樂而不為呢?象WEB服務器這樣的計算機,需要大量的讀取和交換特定的文件,因此,在WEB服務器上建立RamDisk會大大提高網絡讀取速度。
(1)創建和使用RamDisk的方法。
使用RamDisk非常方便,缺省安裝的RedHat6.0就支持RamDisk。你所要作的就是格式化RamDisk并把它裝載到一個目錄下。要想查看RamDisk的數目,用命令"ls -al /dev/ram*",它會給出所有當前情況下可用的RamDisk。這些RamDisk只有使用的時候才占用內存。下面是使用RamDisk的幾個命令:
#創建裝載點
mkdir /tmp/ramdisk0
# 創建一個文件系統
mke2fs /dev/ram0
#裝載ramdisk:
mount /dev/ram0 /tmp/ramdisk0
  這三個命令將會為RamDisk創建一個目錄、格式化RamDisk(創建文件系統)并把RamDisk裝載到目錄"/tmp/ramdisk0"中。現在,你就可以把它作為一個磁盤分區使用了。
  如果格式化RamDisk失敗,可能是因為你沒有把對RamDisk的支持編譯進內核中去。內核中對RamDisk的配置選項是 CONFIG_BLK_DEV_RAM。
  缺省的RamDisk為4M。使用mke2fs命令可以查知你所獲RamDisk的大小。命令mke2fs /dev/ram0會產生以下信息:
mke2fs 1.14, 9-Jan-1999 for EXT2 FS 0.5b, 95/08/09
Linux ext2 filesystem format
Filesystem label=
1024 inodes, 4096 blocks
204 blocks (4.98%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
1024 inodes per group
使用命令df -k /dev/ram0可以查到你實際能用的RamDisk的大小(文件系統也占用一定空間):
>df -k /dev/ram0
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/ram0 3963 13 3746 0% /tmp/ramdisk0
不過要記住,RamDisk中的數據會在機器重新啟動后消失,因此應把其中有用的數據及時備份到硬盤中。
(2)改變RamDisk大小的技巧?
  為使用RamDisk,你或者要將對RamDisk的支持編譯到內核中去,或者把它編譯為一個可裝載模塊。編譯為一個可裝載模塊有一個好處,就是可以在裝載時任意指定RamDisk的大小。
  把下面這一行加到你的lilo.conf 文件中去:
ramdisk_size=10000 (或對老內核寫作ramdisk=10000)
  這樣你鍵入LILO命令并重新啟動后,缺省的RamDisk的大小將為10M,下面是我的/etc/lilo.conf文件:
boot=/dev/hda
map=/boot/map
install=/boot/boot.b
prompt
timeout=50
image=/boot/vmlinuz
label=linux
root=/dev/hda2
read-only
ramdisk_size=10000
實際上,我只獲得了9M多一點的RamDisk,其余被文件系統占用。當你編譯為一個可裝載模塊后,你可以在模塊裝載時決定RamDisk的大小,這可以通過 /etc/conf中的選項設置來設定。或者通過作為ismod命令行參數來實現。
options rd rd_size=10000
insmod rd rd_size=10000
(3)兩個例子
下面是使用模塊的例子:
- 卸載下上一章裝載的RamDisk, umount /tmp/ramdisk0.
- 卸載模塊rmmod rd。
- 裝載RamDisk模塊并設置大小為20M,insmod rd rd_size=20000。
- 創建文件系統,mke2fs /dev/ram0。
- 裝載RamDisk ,mke2fs /dev/ram0。
在WEB服務器上使用RamDisk的實例?
  本例介紹在WEB服務器上使用3個RamDisk的方法。所用的WEB服務器是RedHat 6.0 自帶的Apache。
  首先,把WEB根目錄中所有文件移到其它目錄中,然后創建RamDisk的裝載點:
mv /home/httpd/ /home/httpd_real
mkdir /home/httpd
mkdir /home/httpd/cgi-bin
mkdir /home/httpd/html
mkdir /home/httpd/icons
  然后,把以下命令加到你的/etc/rc.d/init.d/httpd.init文件中去:
### 創建3個RamDisk
/sbin/mkfs -t ext2 /dev/ram0
/sbin/mkfs -t ext2 /dev/ram1
/sbin/mkfs -t ext2 /dev/ram2
### 加載RamDisk到開始創建的目錄中
mount /dev/ram0 /home/httpd/cgi-bin
mount /dev/ram1 /home/httpd/icons
mount /dev/ram2 /home/httpd/html
### 拷貝真正的目錄中的所用文件到RamDisk 中
tar -C /home/httpd_real -c . | tar -C /home/httpd -x
  最后,重新啟動WEB服務器即可生效,試一下速度是否有所改變。
后語:
- 一定要記住保存RamDisk中有用的東西,否則,重新啟動后將化為烏有。你可以用cron設定一個計劃,每隔10分鐘掃描一下RamDisk中的文件是否發生變化,如有,拷貝到硬盤中,這會比較安全。
-最酷的應用是如果你有1G的內存,劃出256M來作為暫存區/tmp,如果很多程序用到/tmp,那么你的系統性能會大大提高,而且重新啟動后垃圾消失,真是一舉兩得。 
 

 

狀 態: 離線

公司簡介
產品目錄

公司名稱: 深圳市盈鵬飛科技有限公司
聯 系 人: 李希崗
電  話: 0086-13602511395
傳  真: 0755-82523175,82523176-819
地  址: 深圳市福田區福明路40號,雷圳大廈12A06
郵  編: 518033
主  頁:
 
該廠商相關技術文摘:
WINCE下如何添加CPL應用程序
Wince sqlite3移植
EAC-C925開機畫面實現手冊
英貝德推出單板機產品軟件升級解決方案(WinCE篇)
EP9315電路設計要點
英貝德科技移植PPP大揭秘:PPP撥號在ARM2410平臺上的移植
AT91SAM9263在人機界面方面的應用
詳解WinCE下USB Host驅動開發(2)
詳解WinCE下USB Host驅動開發(1)
WinCE驅動中設備中斷的處理
Linux內核學習之BogoMIPS值的計算
更多文摘...
立即發送詢問信息在線聯系該技術文摘廠商:
用戶名: 密碼: 免費注冊為中華工控網會員
請留下您的有效聯系方式,以方便我們及時與您聯絡

關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
工控網客服熱線:0755-86369299
版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved