wangchao.org
注册 | 登录 | 添加收藏 | 订阅该频道
 
商城汽车珠宝健康家饰女性王朝网络游戏互联网探索下载娱乐学院
 
数码 | 旅游 | 美容 | 母婴 | 家电 | 美食 | 景区 | 养生 | 手机 | 购车 | 首饰 | 美妆 | 装修 | 厨房 | 科普 | 动物 | 植物 |  | 百态 | 编程 | 商品 | 财经 | 信息 | 军事
  
 
当前位置: 王朝网络 >> system >> Linux下创建和使用RamDisk的技巧
 

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
  下面是使用模块的例子:
  1. 卸载下上一章装载的RamDisk, umount /tmp/ramdisk0.
  2. 卸载模块rmmod rd。
  3. 装载RamDisk模块并设置大小为20M,insmod rd rd_size=20000。
  4. 创建文件系统,mke2fs /dev/ram0。
  5. 装载RamDisk ,mke2fs /dev/ram0。
  1. 在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服务器即可生效,试一下速度是否有所改变。
  后语:
  1. 一定要记住保存RamDisk中有用的东西,否则,重新启动后将化为乌有。你可以用cron设定一个计划,每隔10分钟扫描一下RamDisk中的文件是否发生变化,如有,拷贝到硬盘中,这会比较安全。
  2.最酷的应用是如果你有1G的内存,划出256M来作为暂存区/tmp,如果很多程序用到/tmp,那么你的系统性能会大大提高,而且重新启动后垃圾消失,真是一举两得。(王朝网络 wangchao.net.cn)
 
标签: 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 下面是使用模块的例子: 1. 卸载下上一章装载的RamDisk, umount /tmp/ramdisk0. 2. 卸载模块rmmod rd。 3. 装载RamDisk模块并设置大小为20M,insmod rd rd_size=20000。 4. 创建文件系统,mke2fs /dev/ram0。 5. 装载RamDisk ,mke2fs /dev/ram0。 1. 在WEB服务器上使用RamDisk的实例?    本例介绍在WEB服务器上使用3个RamDisk的方法。所用的WEB服务器是RedHat 6.0 自带的Apache。    首先,把WEB根目录中所有文件移到其它目录中,然后创建RamDisk的装载点: mv /home/httpd/ /home/httpd_real mkdir /home/httpd mkdir /home/httpd/[url=http://www.pccode.net]cgi[/url]-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/[url=http://www.pccode.net]cgi[/url]-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服务器即可生效,试一下速度是否有所改变。 后语: 1. 一定要记住保存RamDisk中有用的东西,否则,重新启动后将化为乌有。你可以用cron设定一个计划,每隔10分钟扫描一下RamDisk中的文件是否发生变化,如有,拷贝到硬盘中,这会比较安全。 2.最酷的应用是如果你有1G的内存,划出256M来作为暂存区/tmp,如果很多程序用到/tmp,那么你的系统性能会大大提高,而且重新启动后垃圾消失,真是一举两得。
 
声明:王朝网络登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。
 
网友评论 查看所有评论
 
 
验证码:  
2006-11-24 00:20:13 繁體版 编辑
 
 
转载本文
UBB代码HTML代码
复制到剪贴板...
 
 最新文章
 ·印度暂缓封锁黑莓 紧盯网密服务密钥- ·黑客借钓鱼网站设陷阱-安全资讯 ·黄海波女友周诗雅性感写真-美女明星 ·一起来看看那些天雷滚滚的广告-搞笑
 ·微软推便携式触摸式鼠标Arc Tou ·图说那些世界上最美丽的地方-风景壁纸 ·快递“先签字后验货”被指违法-业内资 ·QQ.CN成为黑龙江联通IDC业务新
 ·拒绝50万美元奖金 跳槽Facebo ·网络管理员工作错误处理常见十宗罪-安 ·李彦宏百度大会 门票遭黄牛热炒-业内 ·李彦宏坦克大战 搜索可在线玩游戏-业
 ·步步追踪 破译远程控制失效之谜-应用 ·2010年度上半年全国病毒传播趋势  ·网络知识:OSPF路由协议基础-应用 ·林志颖娇妻陈若仪照片大曝光-美女明星
 ·十分钟完全体验Maxthon3.0- ·《庄园物语》8月风靡金山游戏世界 - ·表现满意 快车3.7新版下载能力测试 ·学生开学换手机 专家提醒先安全扫描-
 ·卡巴安全部队震撼发布保护网银安全-业 ·360安全:600万网民电脑龟速开机 ·卡巴斯基全力打造交易安全软件-安全资 ·搜狗“五级加速”引领高速浏览时代-网
 
 
© 2005- 王朝网络 版权所有