Linux RAM磁盘:在RAM中创建文件系统
时间:2020-01-09 10:40:08 来源:igfitidea点击:
软件RAM磁盘使用主内存中的普通RAM,就像它是硬盘驱动器上的分区一样,而不是实际访问通常用于辅助存储(如硬盘)的数据总线。
如何在RAM磁盘上创建和存储Web缓存,以提高在Linux操作系统下加载页面的速度?
您可以按如下方式创建" ram磁盘"(8192 = 8M,无需将ramdisk格式化为日记文件系统):
# mkfs -q /dev/ram1 8192 # mkdir -p /ramcache # mount /dev/ram1 /ramcache # df -H | grep ramcache
输出示例:
/dev/ram1 8.2M 1.1M 6.7M 15% /ramcache
接下来,将镜像或缓存对象复制到/ramcache
# cp /var/www/html/images/*.jpg /ramcache
现在,您可以编辑Apache或squid反向代理以使用/ramcache映射到images.example.com:
<VirtualHost 1.2.3.4:80> ServerAdmin [email protected] ServerName images.example.com DocumentRoot /ramcache #ErrorLog /var/logs/httpd/images.example.com_error.log #CustomLog /var/logs/httpd/images.example.com_access.log combined </VirtualHost>
重新加载httpd:
# service httpd reload
现在,所有对images.example.com的点击都将通过ram提供。
这样可以提高加载页面或镜像的速度。
但是,如果服务器重新启动,所有数据将丢失。
因此,您可能需要编写/etc/init.d/脚本将文件复制回/ramcache。
创建一个名为initramcache.sh的脚本:
#!/bin/sh mkfs -t ext2 -q /dev/ram1 8192 [ ! -d /ramcache ] && mkdir -p /ramcache mount /dev/ram1 /ramcache /bin/cp /var/www/html/images/*.jpg /ramcache
从/etc/rc.local调用它,或在/etc/rc3.d/中创建软链接
# chmod +x /path/to/initramcache.sh # echo '/path/to/initramcache.sh' >> /etc/rc.local
关于tmpfs的注释
2.4或更高版本的Linux内核支持tmpfs。
tmpfs(也称为shmfs)与Linux ramdisk有点不同。
它动态分配内存,并允许将较少使用的页面移至交换空间。
相反,ramfs不使用交换,这在许多情况下可能是有利或不利的。
了解如何在Linux下使用tmpfs。