The Roy Deploy
【效能】k6 壓測 Laravel Octane:找出 2 核 VM 的真實上限
前言 「這台 2 核的 VM,到底能扛多少流量?」這個問題我之前一直是用感覺回答的:應該夠吧,平常 CPU 才 5% 左右。直到有一天我決定認真量一次,才發現憑感覺...
【監控】Loki + Alloy 集中 Laravel 與 Nginx Log:遮罩與踩坑
前言 服務一多,log 就散在各處:app-a、app-c、app-b 三個 Laravel 服務各自寫 storage/logs,nginx 寫在 /var/log/nginx,MySQL 的慢查詢又在另一個 volume。...
【監控】Prometheus + Grafana 監控 Docker 服務與 Slack 告警
前言 這是自架 VM 系列的第 3 篇。第 1 篇用 Cloudflare Access 把後台擋在登入後面,第 2 篇用 Jenkins 做 CI/CD,服務是上線了,但我還有一個很心虛的問題:它...
【CI/CD】Jenkins 打造安全的 Laravel 部署:JCasC 與受限 SSH
前言 之前寫過一篇 GitLab CI/CD 的文章,用 GitLab Runner 把 Laravel 專案從測試一路跑到部署。那套流程好用,但我後來把自己的幾個小服務(app-a、app-b、app...
【監控】Laravel Telescope 完整指南:安裝、設定與實戰排查
前言 當 Laravel 應用在正式環境出現效能問題,你第一個想到的工具是什麼?Log、dd(),還是靠感覺猜?有了 Laravel Telescope,你可以像有透視眼一樣,清楚看到...
【Laravel】N+1 問題:偵測與解決完整指南
本篇介紹 Laravel 中最常見的效能問題 N+1 Query,如何偵測它的存在,以及各種解決方式。 什麼是 N+1 問題? N+1 是 ORM 使用者最容易踩到的效能陷阱。以查詢文...
【MySQL】Index 設計與 EXPLAIN 分析實戰
本篇介紹 MySQL Index 的設計原則,以及如何透過 EXPLAIN 分析 SQL 查詢效能,找出慢查詢的根本原因。 為什麼需要 Index? 當資料表有 100 萬筆資料,沒有 Inde...
【Docker】Docker Compose 搭建多 PHP 版本開發環境 (5.6/7.2/7.4/8.1/8.2)
本篇介紹如何利用 Docker Compose 搭建支援多個 PHP 版本(5.6 / 7.2 / 7.4 / 8.1 / 8.2)的本地開發環境,並透過 Nginx 依站台切換 PHP 版本。 為什麼需要多 P...
【Laravel】whereIn is slow or empty data
A quick fix for Laravel’s slow whereIn Laravel 使用 ORM 時常會用到 whereIn。最近遇到傳入的陣列太大,結果完全查不到資料。查了之後才發現,Eloquen...
【Linux】檢查硬碟使用空間
朋友的網站忽然掛掉了。 於是我連上 VM, 使用 df -h 查看。 原來是硬碟滿了。 Step.1 嘗試清除暫存檔案 sudo apt-get autoclean sudo apt-get clean sudo a...