一、概念
ramdisk可以使用一部分内存空间来模拟硬盘分区,即ramdisk是一个块设备,要用mkfs格式化。
.ramdisk在内核2.0/2.2版本就已经支持.
.ramdisk设备是它不允许重新声明它的内存空间,所以ramdisk块通常会一直占用空间的内存直到系统重启。
.ramdisk的一个缺点是在它上面创建一个文件系统,它同时会消耗缓冲区高速缓存和文件系统缓存,理论上,它可以消耗一个磁盘文件的两倍随机内存。
.ramdisk的另一个缺点是它大小固定,之后不能改变。
.大多数需要RAM临时存储的应用程序会使用tmpfs文件系统而不是ramdisk设备。
二、ramdisk应用
查看当前系统的ramdisk:
复制代码 代码示例:
[root@jbxue ~]# ll /dev/ram*
lrwxrwxrwx 1 root root 4 Sep 26 10:06 /dev/ram -> ram1
brw-r----- 1 root disk 1, 0 Sep 26 10:05 /dev/ram0
brw-r----- 1 root disk 1, 1 Sep 26 10:05 /dev/ram1
brw-r----- 1 root disk 1, 10 Sep 26 10:05/dev/ram10
brw-r----- 1 root disk 1, 11 Sep 26 10:05/dev/ram11
brw-r----- 1 root disk 1, 12 Sep 26 10:05/dev/ram12
brw-r----- 1 root disk 1, 13 Sep 26 10:05/dev/ram13
brw-r----- 1 root disk 1, 14 Sep 26 10:05/dev/ram14
brw-r----- 1 root disk 1, 15 Sep 26 10:05/dev/ram15
brw-r----- 1 root disk 1, 2 Sep 26 10:05 /dev/ram2
brw-r----- 1 root disk 1, 3 Sep 26 10:05 /dev/ram3
brw-r----- 1 root disk 1, 4 Sep 26 10:05 /dev/ram4
brw-r----- 1 root disk 1, 5 Sep 26 10:05 /dev/ram5
brw-r----- 1 root disk 1, 6 Sep 26 10:05 /dev/ram6
brw-r----- 1 root disk 1, 7 Sep 26 10:05 /dev/ram7
brw-r----- 1 root disk 1, 8 Sep 26 10:05 /dev/ram8
brw-r----- 1 root disk 1, 9 Sep 26 10:05 /dev/ram9
lrwxrwxrwx 1 root root 4 Sep 26 10:06 /dev/ramdisk -> ram0
介绍几个ramdisk的应用实例。
1,格式化/dev/ram0
复制代码 代码示例:
mkfs -t ext2 /dev/ram0
2,挂载/dev/ram0 到/tmp/ramdisk0
复制代码 代码示例:
mkdir /tmp/ramdisk0
linuxjishu/9952.html target=_blank class=infotextkey>mount /dev/ram0 /tmp/ramdisk0
3,查看当前挂载的情况
复制代码 代码示例:
df -h
Filesystem Size U
sed Avail Use% Mounted on
/dev/sda1 19G 3.1G 15G 18% /
tmpfs 252M 0 252M 0% /dev/shm
/dev/ram0 16M 24K 15M 1% /tmp/ramdisk0
有关tmpfs的相关知识。
一,概念:
tmpfs是一种基于内存的文件系统,也可以使用swap分区来存储.tmpfs是一个文件系统,并不是块设备,只要安装它,就可以使用了。
.tmpfs在存储时不需要块设备。
.tmpfs文件系统的数据完全存放在文件系统的缓存中。也可以是交换存储。
.可以在得到高速RAM硬盘优势的同时还享有虚拟内存的灵活性。
.tmpfs基本上是所有版本中共享内存设备/dev/shm的默认文件系统。
.在Linux内核中,虚拟内存资源由物理内存和交换分区组成,tmpfs向虚拟内存子系统请求页来存储文件,它同其它请求页的部分一样,不知道分配给自己的是物理内存还是交
换分区存储。
利用tmpfs来提高磁盘读写的实例。
新建/mnt/userdate目录,并通过tmpfs挂载到/mnt/userdate目录。
复制代码 代码示例:
mkdir /mnt/userdate
[root@jbxue mnt]# mount -t tmpfs -o size=100Gtmpfs /mnt/userdate/
[root@jbxue mnt]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/cciss/c0d1p1 434G 4.6G 407G 2% /
/dev/cciss/c0d0p6 840G 230G 567G 29% /u01
/dev/cciss/c0d0p5 876G 36G 796G 5% /opt
/dev/cciss/c0d0p3 74G 183M 70G 1% /tmp
/dev/cciss/c0d0p1 380M 17M 344M 5% /boot
tmpfs 127G 0 127G 0% /dev/shm
tmpfs 100G 0 100G 0% /mnt/userdate
使用dd命令来测试磁盘数据总是报错,原因未知:
复制代码 代码示例:
[root@jbxue ~]# time dd oflag=direct if=/dev/zero of=/mnt/userdate/testfile bs=2M count=1000
dd: opening `/mnt/userdate/testfile': Invalid argument
real 0m0.002s
user 0m0.001s
sys 0m0.001s
有知道这个错误的原因与解决方法的朋友,望分享下。