← MockServer Professional Module 8 • Performance & High-Throughput (Final)

Module 8: Performance Testing, High-Throughput Tuning & Load Testing Guide

คู่มือพิมพ์เขียวเชิงลึกและการวิเคราะห์ทางเทคนิค: การปรับแต่งระบบ Express Gateway และ MockServer Netty Engine รองรับทราฟฟิกมหาศาล, การจำลองสเปกโหลดด้วย k6 Script, และแบบฝึกหัดประเมินความรู้พร้อมเฉลยละเอียด

[1] ส่วนที่ 1: หมุดเชื่อมโยง & Roadmap Progress Tracker

Module 8: Complete Curriculum

ชื่อบท/หัวข้อหลัก: Module 8: Performance Testing, High-Throughput Tuning & Load Testing Guide

❓ หมุดตั้งโจทย์: "ทำไมบทนี้ถึงชื่อนี้? และเรากำลังเรียนเรื่องนี้ไปเพื่ออะไร?"

ตอบ: สมบูรณ์แบบครบทั้ง 8 โมดูล จากสถาปัตยกรรมพื้นฐาน ความปลอดภัยบน Gateway จนถึงการเค้นประสิทธิภาพสูงสุด (High Throughput & Load Testing) บทนี้จะสอนวิธียกระดับขีดความสามารถของสถาปัตยกรรม Mocking ทั้งระบบ เพื่อให้รองรับการทำ Load Testing ระดับหมื่น RPS ได้อย่างมั่นคงและปลอดภัย

PROGRESS ROADMAP (COMPLETE):
✓ Mod 1
✓ Mod 2
✓ Mod 3
✓ Mod 4
✓ Mod 5
✓ Mod 6
✓ Mod 7
🚀 Mod 8

[2] ส่วนที่ 2: เรื่องราวและมโนทัศน์เชิงลึก (Case Study & Mental Models)

1. ฉากสถานการณ์จริง (The Case Study)

วิกฤต Load Test พังค้างเมื่อเจาะทราฟฟิก 5,000 RPS

ระบบการเงินแห่งหนึ่งเตรียมรับแคมเปญใหญ่ที่คาดการณ์ทราฟฟิกไว้ที่ 5,000 RPS แต่เมื่อยิง Load Test ฝั่ง MockServer กลับพังล่มตั้งแต่น้ำหนักยิงที่ 1,000 RPS เนื่องจากคอขวดทางด้านการจัดการ Memory (JVM Heap OOM) และ Single-Thread Bottleneck ของ Express Gateway

💡 แนวทางแก้ไข: ทำการ Tuning ทั้ง Express Gateway (:3000) ด้วย PM2 Cluster Mode และปรับแต่ง Netty Engine ของ MockServer (:1080) พร้อมกำหนด JVM Heap Size ให้เหมาะสม

[3] ส่วนที่ 3: ระบบปรับแต่งประสิทธิภาพ (High-Throughput Tuning Guide)

1. Tuning ฝั่ง Express Auth Proxy Gateway (PM2 Cluster Mode)
# รัน Express Gateway ใน Cluster Mode เพื่อกระจายงานเต็มทุก CPU Cores
npx pm2 start proxy/server.js -i max --name "mock-gateway"
2. Tuning ฝั่ง MockServer Netty Engine (Docker & JVM Options)
docker run -d -p 1080:1080 \
  -e MOCKSERVER_LOG_LEVEL="WARN" \
  -e MOCKSERVER_NIO_EVENT_LOOP_THREAD_COUNT="16" \
  -e JAVA_OPTS="-Xms2g -Xmx4g -XX:+UseG1GC" \
  mockserver/mockserver:latest

[4] ส่วนที่ 4: สคริปต์ทดสอบโหลดด้วย k6 (scripts/load_test.js)

k6 Load Testing Script with Thresholds & Stages
import http from 'k6/http';
import { check, sleep } from 'k6';

export const options = {
  stages: [
    { duration: '10s', target: 50 },  // Ramp-up
    { duration: '30s', target: 500 }, // Steady Load (500 VUs)
    { duration: '10s', target: 0 },   // Ramp-down
  ],
  thresholds: {
    http_req_failed: ['rate<0.01'],   // Error Rate < 1%
    http_req_duration: ['p(95)<50'],  // 95% of requests < 50ms
  },
};

export default function () {
  const res = http.post('http://localhost:3000/api/v1/payments',
    JSON.stringify({ amount: 500 }),
    { headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer eyJhbG...' } }
  );
  check(res, { 'status is 200': (r) => r.status === 200 });
  sleep(0.1);
}
⚡ Instant Feedback Quiz

ส่วนที่ 5: แบบทดสอบประเมินความรู้ Module 8 (10 ข้อ)

คลิกเลือกคำตอบข้อที่ถูกต้อง ระบบจะตรวจให้คะแนนและแสดงผลเฉลยพร้อมคำอธิบายทันที!

คะแนนสด 0 / 10
[6]

ส่วนที่ 6: สรุปหมุดเชื่อมโยงกลับหาหัวข้อบท (Closing Title Connection Wrap-up)

เนื้อหาและแบบฝึกหัดทั้งหมดในวันนี้ ตอบและสะท้อนชื่อบท Module 8: Performance Testing, High-Throughput Tuning & Load Testing Guide อย่างสมบูรณ์: การปรับแต่งระบบ Express Gateway และ MockServer Netty Engine ช่วยเติมเต็มศักยภาพให้คุณสามารถควบคุมระบบ API Mocking ในระดับ Production ได้อย่างมั่นใจ ทั้งด้านความเสถียร สถาปัตยกรรม และการทนทานต่อทราฟฟิกขนาดใหญ่ครับ! 🌟