PHP - Session 對系統的影響

11 月 12, 2022

--

PHP 如果需要使用 Session 一定要注意基本使用原則,可以參考 Hoyo 最近遇到的案例引以為戒

--

案例一:不當的存放內容

公司前員工犯蠢將大量資料儲存於 Session,PHP 的 Session 儲存空間因為是雲端主機,硬碟空間很小只有 30G 導致空間寫滿系統發生錯誤

解決:找到犯蠢的程式,修正即可

--

案例二:不當的存放位置

使用 MySQL 當作 Session 儲存空間,在相簿應用內,大量照片因為權限檢查問題使用 Session,導致網頁載入速度緩慢,在 500 張照片測試下,沒有 Session 檢查的 3 秒延長到超過 30 秒

這是 Hoyo 自己的相簿平台,因為多網站跨網域 Session 的應用,一開始使用 MySQL 資料庫當作儲存媒介,後來一直遇到照片多時效率不彰問題,下定決心解決,因為系統架構比較複雜懷疑過 Nginx Proxy 做了大量的設定,也以為是 HTTP 1.1 的限制採用了 HTTP/2 甚至是 HTTP/3 也是改善不大,也以為是 Docker 的效能問題或是家裡路由器老舊,走了很多彎路最後才確定是 Session 存放在資料庫的問題

將資料表轉換成 Memory 存放在記憶體後,速度快了一些,不過還是不理想

解決:改放在 Redis 就解決了

--

一個月後...

又變慢了,然後懷疑是有了資料的問題,雖然才 1000 多筆,清空之後就又恢復原本的速度,然後就

查了一下

再到 PHP Redis 看了一下,果然是這樣用的

參考

讓 Redis 自己管理再觀察看看吧

--

 412 total views,  2 views today

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。