几步简单操做,提高你的网站访问速度!

博客迁移完腾讯云之后, 又配置好了ssl,一直在调优PHP的性能,中午调整了半天fpm和opcache, 晚上又忽然想起来我以前在某个大会上分享过的使用tmpfs(把内存当成硬盘)来加速网站的作法,因而~搞!php

重要的事情要说三遍, 开始以前,对你对 nginx root 目录要备份, 备份, 备份!html

腾讯云这台机器是ubuntu的,版本是:linux

$ cat /etc/issueUbuntu 18.04.4 LTS n l

首先,咱们建立一个目录,好比/ramdisk,而后使用tmpfs命令挂载一部份内存看成硬盘:nginx

mount -t tmpfs -o size=256M tmpfs /ramdisk

此处我挂载了最大256M的内存到/tmp节点,值得注意的是系统不会一会儿就会把256M内存占用,而是实际用多少占多少,最大不超过256M。git

能够用df来确认是否成功操做:github

$ df -h
Filesystem Size Used Avail Use% Mounted on
......
tmpfs 256M 0 256M 0% /ramdisk

接下来咱们须要用到一个今天才发现的神器(之前还要本身写corntab脚原本作同步:<),Anything-sync-daemon, 它能够自动的把一个指定目录同步到tmpfs,而且能设置按时,或者系统启动时来自动同步,有了个这个工具,这一切都会变得很是简单。面试

首先下载asd(Anything-sync-daemon):redis

wget https://github.com/graysky2/anything-sync-daemon/archive/master.zip

解压缩以后,执行安装:数据库

make install-systemd-all
(这里有个问题,默认的它会把systemd服务安装到/usr/lib/systemd/system, 但不知道为啥在个人这个系统不systemd找不到这个服务,我经过把它的几个服务脚本拷贝到/lib/systemd/system解决)
mv asd-resync.service  asd-resync.timer  asd.service /lib/systemd/system

而后通知 systemd:ubuntu

systemctl daemon-reload

个人博客的nginx的root是/home/huixinchen/www/htdocs下, 咱们如今但愿是这个目录能自动同步到tmpfs目录,也就是/ramdisk, 因而咱们修改asd.conf文件, 增长:

WHATTOSYNC=('/home/huixinchen/www/htdocs/') //要同步的目录VOLATILE="/ramdisk" // tmpfs目录

你也能够同步多个文件,只须要逗号分隔写在WHATTOSYNC数组里便可,好比:

WHATTOSYNC=('/home/huixinchen/www/htdocs/', ‘/home/huixinchen/local/xxxx’) //要同步的目录

而后咱们设置天天同步一次tmpfs上的变动内容到硬盘,编辑/lib/systemd/system/asd-resync.timer,

[Unit]
Description=Timer for Anything-sync-daemon - 1Hour
PartOf=asd-resync.service asd.service
[Timer]
OnUnitActiveSec=24h

而后咱们用asd p检查下:

$ asd
pAnything-sync-daemon v5.85 on Ubuntu 18.04.4 LTS

Daemon pid file is not present.
Resync cronjob is not present.
Overlayfs technology is currently inactive.

Asd will manage the following per /etc/asd.conf settings:
owner/group id:     huixinchen/1000
target to manage:   /home/huixinchen/www/htdocs
sync target:        /home/huixinchen/www/.htdocs-backup_asd
tmpfs target:       /ramdisk/asd-huixinchen/home/huixinchen/www/htdocs
dir size:           237M
recovery dirs:      none

asd 会把个人 /home/huixinchen/www/htdocs 目录同步到 /ramdisk/asd-huixinchen/home/huixinchen/www/htdocs,

而且会把tmpfs上的更新内容按照时间写回到
/home/huixinchen/www/.htdocs-backup_asd

当咱们中止asd的服务的时候,asd会把.htdocs-backup_asd在mv成htdocs,这样就不用担忧你的内容会由于服务器忽然断电丢失了.

如今,让咱们启动asd:

service asd start

如今/home/huixinchen/www/htdocs就会被复制到tmpfs, 而且软连接过去,也就是说nginx咱们根本不须要修改, 只须要重启一下fpm, 重置一下opcache的cache便可:

$ ll
total 0K
lrwxrwxrwx 1 huixinchen huixinchen 50 Feb 15 22:27 htdocs -> /ramdisk/asd-huixinchen/home/huixinchen/www/htdocs/

重启完 fpm,一切works out of the box!

PS:关于Asd更多的信息,能够参考:Anything-sync-daemon

https://wiki.archlinux.org/in...

来源:https://www.laruence.com/2020...
做者:laruence

最新整理的 2TB 技术干货:包括架构师实战教程、大数据、Docker容器、系统运维、数据库、redis、MogoDB、电子书、Java基础课程、Java实战项目、ELK Stack、机器学习、BAT面试精讲视频等。只需在「 民工哥技术之路」微信公众号对话框回复关键字:1024便可获取所有资料。

相关文章
相关标签/搜索