使用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 [...] |
链接
- 关于tmpfs的维基百科条目: http : //en.wikipedia.org/wiki/TMPFS