ข้ามไปที่เนื้อหาหลัก
10 ปัญหา Next.js ค. ตนดูคอมเจอ เวลาที่ทำให้เว็บ Production พังแบบไม่รู้ตัว ทำให้ Server ล่มจริง เว็บพัง เผาเงินบริษัท ไม่มีใครบอกคุณ
1) Prisma / Database Connection Leak
- สร้าง PrismaClient ซ้ำทุก request ทำให้เปิด connection pool ใหม่ตลอดเวลา
- เมื่อ traffic เพิ่ม connection จะพุ่งจน DB เต็มและเกิด too many connections
- แก้ด้วย singleton + connection pooling เช่น PgBouncer หรือ Prisma Accelerate
2) SSR Blocking / Render ช้ามากๆๆ มีผลต่อเว็บ
- Server ต้องรอ fetch ข้อมูลก่อน render ทำให้ทุก request ช้าและ TTFB สูง
- เมื่อผู้ใช้มากขึ้น CPU จะพุ่งเพราะต้องประมวลผลซ้ำตลอด
- ใช้ SSG, ISR, cache หรือ streaming เพื่อลดภาระ server
3) ENV ผิดตรงไหนหรือหายใน Production
- ตั้งค่า environment ไม่ครบหรือใช้ผิด scope ทำให้ API/DB ต่อไม่ได้
- local ผ่านแต่ production พังเพราะค่าความลับไม่ถูกโหลด
- แยก .env.production และ validate ค่าตอน start เสมอ
4) Import โค้ด Server ไป Client
- นำ fs, prisma, bcrypt หรือ Node libs ไปใช้ใน Client Component
- ทำให้ build fail, bundle ใหญ่ หรือ runtime crash บน browser/edge
- แยก server logic กับ UI logic ออกจากกันอย่างชัดเจน
5) API Route ทำงานหนักเกิน
- ประมวลผล AI/report/export ใน request เดียวทำให้ timeout และ 504
- serverless จะถูก kill เมื่อเกินเวลา execution
- ย้ายงานหนักไป queue หรือ background worker
6) Client Bundle ใหญ่เกินไป
- โหลดไลบรารีใหญ่ทั้งก้อนทำให้ JavaScript หลาย MB และเว็บช้า
- ผู้ใช้มือถือจะรอนานและคะแนน SEO ตก
- ใช้ dynamic import, code splitting และ bundle analyzer
7) ใช้ SSR ทุกหน้า
- ทุก request ต้อง render ใหม่ ทำให้ scale ไม่ได้และ CPU สูง
- CDN cache ใช้ไม่ได้เพราะไม่มี static file
- เลือก SSG/ISR สำหรับหน้าที่ข้อมูลไม่เปลี่ยนบ่อย
8) Memory Leak ใน Server
- เก็บข้อมูลในตัวแปร global หรือ cache ที่ไม่เคลียร์ทำให้ RAM โตเรื่อย ๆ
- รันนาน ๆ แล้วเซิร์ฟเวอร์จะช้าและ crash เอง
- ใช้ Redis/LRU cache และ monitor memory usage
9) ใช้ Edge Runtime ผิดงาน
- Edge ไม่รองรับ Node APIs บางตัว เช่น Prisma หรือ filesystem
- ฝืนใช้แล้วจะ build fail หรือ runtime error
- งานที่แตะ DB หรือ native module ควรใช้ Node runtime
10) ไม่มี Monitoring / Logging
- เมื่อระบบพังจะไม่รู้สาเหตุและแก้ปัญหาช้ามาก
- console.log ไม่พอสำหรับ production จริง
- ควรมี Sentry, log system, metrics และ alert เสมอ
ความคิดเห็น
แสดงความคิดเห็น