
ประสิทธิภาพและการ Deploy บน Cloud
Event loop, blocking I/O, profiling, memory leaks, การ optimize query, การบีบอัด, clustering, worker threads, load balancing, การ caching เชิงกลยุทธ์ (Redis + HTTP), AWS (ECS, Lambda), serverless, กลยุทธ์การ deploy (blue/green, canary)
1แนวทางใดที่ช่วยเพิ่มประสิทธิภาพการ deploy container NestJS ใน AWS ECS?
แนวทางใดที่ช่วยเพิ่มประสิทธิภาพการ deploy container NestJS ใน AWS ECS?
คำตอบ
เพื่อเพิ่มประสิทธิภาพการ deploy container NestJS บน ECS: ใช้ multi-stage Docker builds เพื่อลดขนาด image สุดท้าย (build stage + production stage แบบ minimal), ใช้ Docker layer caching เพื่อเร่งการ build, ใช้ ECR (Elastic Container Registry) ใน region เดียวกันเพื่อลด latency, ตั้งค่า health checks ที่เหมาะสม, ใช้ Fargate เพื่อให้การจัดการง่ายขึ้น, กำหนด resource limits (CPU/memory) ที่เหมาะสม, ทำ graceful shutdown สำหรับ SIGTERM อิมเมจ Node.js alpine ที่ optimize แล้วอาจมีขนาด <100MB เทียบกับ >1GB ที่ไม่ได้ optimize
2เฟสหลักของ event loop ใน Node.js มีอะไรบ้าง?
เฟสหลักของ event loop ใน Node.js มีอะไรบ้าง?
คำตอบ
event loop ของ Node.js มี 6 เฟสหลัก: timers (setTimeout/setInterval), pending callbacks (I/O callback ที่ถูกเลื่อน), idle/prepare (ภายใน), poll (ดึง event I/O ใหม่), check (setImmediate) และ close callbacks แต่ละเฟสมี queue แบบ FIFO ของ callback ที่จะรัน เฟส poll สำคัญที่สุดเพราะจัดการ event I/O
3การทำงานแบบบล็อก (blocking I/O) ใน Node.js ส่งผลกระทบอย่างไร?
การทำงานแบบบล็อก (blocking I/O) ใน Node.js ส่งผลกระทบอย่างไร?
คำตอบ
การทำงานแบบบล็อกใน Node.js จะบล็อก event loop ทั้งหมด ทำให้การทำงานอื่นๆ ทั้งหมดไม่สามารถประมวลผลได้ สิ่งนี้ทำให้ประสิทธิภาพลดลงอย่างมากเพราะ Node.js เป็นแบบ single-thread การทำงานแบบ synchronous เช่น fs.readFileSync, crypto.pbkdf2Sync หรือ loop ที่หนักจะบล็อก thread หลัก ควรใช้เวอร์ชัน asynchronous เสมอ หรือมอบหมายให้ worker threads
จะระบุ memory leak ในแอปพลิเคชัน Node.js บน production ได้อย่างไร?
ควรใช้เครื่องมือใดในการ profiling ประสิทธิภาพ CPU ของแอปพลิเคชัน NestJS?
+27 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ
พื้นฐาน Node.js
Core API ของ Node.js
การเขียนโปรแกรมแบบอะซิงโครนัส
พื้นฐาน Express.js
พื้นฐาน NestJS
การออกแบบ REST API
การตรวจสอบความถูกต้องและ DTO
เอกสาร API และ Contract
การจัดการข้อผิดพลาด
การทดสอบหน่วย (Unit Testing)
การจัดตารางงาน
Module และ DI ของ NestJS
การกำหนดค่าและการจัดการสภาพแวดล้อม
การยืนยันตัวตนด้วย JWT
การให้สิทธิ์และ RBAC
ฐานข้อมูลด้วย TypeORM
Prisma ORM
Middleware และ Interceptor
การอัปโหลดไฟล์
WebSockets
GraphQL กับ NestJS
การทดสอบแบบ End-to-End
การแคชด้วย Redis
คิวด้วย Bull
DevOps, Logging และ CI/CD
Docker และ Containerization
ไมโครเซอร์วิส
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย
เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี