幾步簡單操做,提高你的網站訪問速度!

博客遷移完騰訊雲之後, 又配置好了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便可獲取所有資料。

相關文章
相關標籤/搜索