目前最快的磁盘,哪怕是SSD阵列也达不到内存的读写速度,特别是琐碎小文件的随机读取方面,差别更大。

所以呢,今天捣鼓了一下,把网站所有内容放在内存里面,IO效率快到没朋友,分享一下做法。

 

物理盘的网站路径是/var/www/www.tingtao.org

 

首先,Linux系统默认有一个挂载点是内存文件系统,默认大小是内存的一半,在这里的操作就是纯内存操作,但是重启系统后会消失,所以要留个后路。

Debian系统的路径是/dev/shm,ubuntu估计也是,其他的可能有区别。

首先创建新的网站路径:

mkdir -p /dev/shm/web/www.tingtao.org/
chown -R www.tingtao.org:www.tingtao.org /dev/shm/web/www.tingtao.org/
chmod -R 755 /dev/shm/web/www.tingtao.org/

 

把物理盘的文件复制过去以后,对应的修改站点的nginx配置文件路径,以及php-fpm的对应配置文件,跟原先配置对比只是改动路径,这里就不列举了。

 

重启php-fpm和nginx,网站应该运行起来了,然后来给数据留个后手:

简单的定时把文件复制到物理盘,这个倒是简单,但拓展一下,假设要同步数据到本级和其他机器呢,全都可以用rsync,所以本文用这个一劳永逸。

 

在目标机器的rsync配置里面加一段:

[wwwtingtaoorg]
uid=www.tingtao.org
gid=www.tingtao.org
path=/var/www/www.tingtao.org/
igonre errors
read only=no
list=yes
auth users=rsyncuser
secrets file=/etc/rsyncuser.txt

 

最后,同步命令如下:

rsync --port=6110 -vzrt --progress --password-file="/root/rsyncuser.txt" --delete  /dev/shm/web/www.tingtao.org/  rsyncuser@127.0.0.1::wwwtingtaoorg/ 

 

本文的同步目标是本机,其他机器的话把地址改了就可以了,也可以放在cron任务里面自动同步。

 

 

 

备注一下,使用本文做法的前提是有足够大的内存,而且至少要比网站容量大出一个数量级;同时关于备份的频率问题要根据自己情况来做,更新不频繁的话,每次更新以后手工同步就可以了,较频繁的话最好是做cron任务。

 

作者 听涛

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注