-
Notifications
You must be signed in to change notification settings - Fork 0
Some Optimization
Tennyleaz edited this page Aug 22, 2018
·
5 revisions
除了 MySQL 資料庫優化(這很重要但是蠻複雜!),本身 Piwik 伺服器也有不少優化餘地。
當資料量一大,未歸檔(Archive)的資料容易拖慢每個新 request 或是伺服器網頁的速度。官方的說明文件有提到,進行定時的自動歸檔可以有效的減少反應時間。
主要方式是在伺服器網頁設定內,選擇 不要 Auto-Archiving:
然後建立一個新的例行性工作排程(cron job):
crontab -e
加入一行這樣:
分 時 日 月 星期 要執行的指令
5 * * * * www-data /usr/bin/php7.1 /var/www/<網站名稱>/public_html/console core:archive --url=http:/<網站名稱>/ > /<我要放log的目錄>/piwik-archive.log 2>&1
基本上我們要在/etc/cron.d/底下建立一個文件,然後以上的指令會排程每小時的05分執行一次。紀錄檔案會輸出到piwik-archive.log內。
- 第一個指令
/var/www/<網站名稱>/public_html/console是 piwik 控制台的路徑, - 第一個參數
--url=http:/<網站名稱>/是你的 piwik 網站主頁的路徑, - 第二個參數
> /<我要放log的目錄>/piwik-archive.log你想輸出是 cron 工作的日誌檔案位置, - 第三個參數
2>&1是錯誤日誌輸出的檔案位置,&1就是我要印在第二個參數同一個檔案內
目前用使用者 www-data 在某些 Linux 發行版上可能會有權限問題,遇到問題可以不要切換使用者或是直接用 root
這樣一來每小時會封存一次新進紀錄,我測試可以發現封存後的新 request 回應時間的確有加快了。
crontab 使用方式可以參考例行性工作排程(crontab)
