เมื่อเวลา 03:47 ของเช้าวันจันทร์ ระบบมอนิเตอร์ของเราดังขึ้น — stack trace ของ Airflow DAG ที่รัน batch summarization แสดงข้อความซ้ำๆ ว่า openai.RateLimitError: Error code: 429 - {'error': {'message': 'Rate limit reached for requests', 'type': 'rate_limit_error', 'code': 'rate_limit'}} ในขณะที่ quota ขององค์กรยังเหลืออีก 38% ของรอบบิลลิง ที่สำคัญคือเหตุเกิดซ้ำทุก 90 วินาทีเป๊ะ จน throughput ของ pipeline ตกจาก 1,200 docs/ชั่วโมง เหลือ 80 docs/ชั่วโมง
ผมเป็นวิศวกรอาวุโสที่ดูแล data pipeline ของลูกค้าเอนเทอร์ไพรส์ 8 ราย บทเรียนจากการผสานรวม GPT-6 เข้ากับระบบจริงในเดือนนี้ทำให้ผมตระหนักว่า "official endpoint เสถียร" ไม่ได้แปลว่า "production-ready" เสมอไป — บทความนี้ถอดรหัสปัญหา 3 มิติที่เราเจอระหว่างทาง พร้อมโค้ดที่รันได้จริง และตารางเปรียบเทียบที่ช่วยให้ทีมของคุณตัดสินใจได้เร็วขึ้น
1. สาเหตุที่ 429 ไม่ได้หมายความว่า "คุณเรียกเยอะเกินไป"
หลังเก็บ log เป็นเวลา 6 ชั่วโมง ทีมเราพบว่า 429 จาก endpoint ตรงมาจาก 3 สาเหตุหลัก:
- Burst limit per minute: ผู้ให้บริการต้นทางจำกัด RPM ต่อ organization (ปัจจุบัน 500 RPM สำหรับ Tier 2)
- TPM saturation: ลูกค้ารายหนึ่งยิง batch 12K tokens ต่อ request ทำให้ token budget ต่อนาทีเต็มเร็วกว่าที่คาด
- Shared egress IP: ทีม