使用tmpfs将文件/目录存储在内存中

使用tmpfs将文件/目录存储在内存中

版本1.0
作者:Falko Timme

你可能知道从RAM读取的速度比从硬盘读取文件要快很多,并且减少了磁盘I / O。 本文介绍如何使用tmpfs(用于创建内存设备的文件系统)的帮助,将文件和目录存储在内存中而不是硬盘驱动器上。 这对于文件缓存和其他临时数据(如PHP使用session.save_handler =文件的 PHP会话文件)非常理想,因为在关闭系统或重启系统时数据丢失。

我不会保证这将为您工作!

使用tmpfs

每个Linux系统上都有一个标准的内存设备(除了一些虚拟机 - 取决于虚拟化技术) - / dev / shm

当你跑步

mount

你应该看到这样的东西:

tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)

默认情况下,它大约是系统内存大小的一半(您可以通过运行检查它的实际大小

df -h /dev/shm

) - 所以如果你有4GB的RAM,它的大小将是大约2GB。

您可以使用/ dev / shm ,就像它是一个普通的硬盘驱动器,例如,您可以将文件复制到它:

cp -af test.tar.gz /dev/shm/

Etvoilà,文件存储在内存中:

ls -la /dev/shm/
server1:/# ls -la /dev/shm/
total 316
drwxrwxrwt 18 root root    380 2008-11-27 16:06 .
drwxr-xr-x 12 root root   3780 2008-11-27 15:33 ..
-rw-r--r--  1 root root 311636 2003-04-02 20:00 test.tar.gz
server1:/#

(请注意,当您关闭电源或重新启动系统时,该文件将丢失!)

如果你喜欢,你可以调整/ dev / shm的大小,例如:

mount -o remount,size=3G /dev/shm

(小心成长 - 如果你使它太大,并使用所有的空间,那么剩下的系统会留下更少的RAM,这可能会导致各种不必要的行为!)

现在,我们假设您想要在/var/www/www.example.com/cache 目录中为高流量网站创建某种文件缓存。 当然,将这个缓存放在内存中是很好的。 就是这样:

首先创建缓存目录:

mkdir -p /var/www/www.example.com/cache

(如果您的缓存需要,您可以更改其所有权,例如:

chown proxy:proxy /var/www/www.example.com/cache

现在我们将该目录作为内存设备(大小为100MB,权限为755):

mount -t tmpfs -o size=100M,mode=0755 tmpfs /var/www/www.example.com/cache

看一眼

mount

...你应该看到这个:

tmpfs on /var/www/www.example.com/cache type tmpfs (rw,size=100M,mode=0755)

就是这样 - 现在你可以直接在内存中缓存文件。

如果要在引导时安装该目录,请编辑/ etc / fstab ...

vi /etc/fstab

...并将这样添加到文件中:

[...]
tmpfs /var/www/www.example.com/cache tmpfs size=100M,mode=0755 0 0
[...]

链接

赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏