Skip to content

ระบบช้าหรือต้องรอนาน (Render Cold Start)

ปัญหาที่พบบ่อยที่สุดในระบบ Dev/Staging — Cold Start ของ Render.com

ทำไมเกิด?

Backend API ของเรารันบน Render.com ในแผน Free:

  • Sleep หลัง 15 นาที ที่ไม่มี traffic
  • Request แรกหลังตื่น → ใช้เวลา 30-60 วินาที ในการ boot
  • เมื่อ Warm แล้ว — ใช้งานปกติ (ms-level)

อาการ

  • Login → หมุนนาน 30-60 วินาที → สำเร็จ
  • Dashboard ไม่โหลด → รอนาน → โหลดได้
  • บางทีได้ "503 Service Unavailable" ครั้งแรก

วิธีแก้ระยะสั้น

รอ

  • คำขอแรก: รอ 30-60 วินาที
  • คำขอถัด ๆ ไป: เร็วปกติ

Refresh / Retry

  • F5 ใหม่หลังรอ 30 วินาที

Console Log

ถ้าใช้ DevTools (F12) → Network — จะเห็น:

  • Request แรก: pending นาน
  • Response สำเร็จ 200 → ใช้ได้แล้ว

วิธีแก้ระยะยาว

Option 1: Upgrade Render Plan

Render Starter — $7/เดือน — ไม่ Sleep

ผลที่ได้:

  • ไม่มี Cold Start
  • คงประสิทธิภาพได้ตลอด 24 ชม.
  • ทำใน Render Dashboard

Option 2: Keep-Warm Cron

ตั้ง cron ping API ทุก 10-14 นาที (เพื่อกัน sleep):

ตัวเลือก:

  • cron-job.org (ฟรี)
  • UptimeRobot (ฟรี)
  • GitHub Actions (ฟรี)

ตัวอย่าง URL ที่ ping:

https://wms-api-dev-2w6s.onrender.com/api/v1/health

Cron schedule:

*/14 * * * *

Option 3: ย้าย Backend ไป Service อื่น

  • Fly.io — มี Free tier ไม่ sleep แต่จำกัด resource
  • Railway — paid แต่เร็วและ stable
  • Vercel Functions — Serverless (ทำงานเป็น Function)
  • Cloudflare Workers — Edge — เร็วมาก แต่ต้อง refactor

Option 4: Self-host

  • VPS ของตัวเอง (DigitalOcean, Vultr, AWS Lightsail)
  • คุมเอง — ไม่ sleep

สื่อสารกับผู้ใช้

ถ้าระบบ Dev — เปิด Announcement:

Title: ระบบ Dev อาจช้าครั้งแรกของวัน
Severity: Info
Body: คำขอแรกในวันอาจรอ ~30 วินาทีในการ wake up server

Loading State ที่ดี

  • แสดง "กำลังเรียกข้อมูล... (อาจใช้เวลานานในครั้งแรก)" หลัง 5 วินาที
  • แสดง progress / animation

ตรวจสอบสถานะ

Health Endpoint

GET https://wms-api-dev-2w6s.onrender.com/api/v1/health

ตอบ 200 → API up

Render Dashboard

ดูได้ว่า Service "Live" หรือ "Sleeping"

Admin Portal → Health

ดูสถานะ Backend แบบ Live

เปรียบเทียบ

PlanCost / moSleepBoot Time
Free$0Yes (15 min)30-60 sec
Starter$7NoInstant
Standard$25NoInstant + More resources
Pro$85NoBest performance

Production = ห้ามใช้ Free

Production ต้อง Paid Plan

อย่าใช้ Free Plan สำหรับ Production — ผู้ใช้รอ Cold Start = ลูกค้าหายไป

หน้าที่เกี่ยวข้อง

เผยแพร่ภายใต้ Digital Outsourcing