Cloudflare รายงานถึงโครงการ Pingora พรอกซี่เซิร์ฟเวอร์ภายในของ Cloudflare เองที่พัฒนาขึ้นเพื่อทดแทน NGINX ที่ทาง Cloudflare พบข้อจำกัดหลายอย่างทำให้ไม่สามารถรีดประสิทธิภาพออกมาได้เต็มที่
ข้อจำกัดสำคัญของ NGINX ที่ Cloudflare พบคือระบบการกระจายโหลดของ NGINX นั้นใช้รูปแบบ worker ที่เป็นโปรเซสในระบบปฎิบัติการ กระจายโหลดระหว่าง worker แต่ละตัวไม่เท่ากัน และไม่สามารถแชร์ connection pool ข้าม worker ได้ ทำให้มี connection ไปยังเซิร์ฟเวอร์ต้นทางมากเกินความจำเป็น รวมถึงการเขียนฟีเจอร์เพิ่มเติมให้กับ NGINX นั้นทำได้ยาก หากไม่เขียนในภาษา C ที่ผิดพลาดได้ง่ายก็ต้องเขียนในภาษา Lua ที่ประสิทธิภาพไม่ดีนักและภาษา Lua ไม่ใช่ static type ทำให้จัดการโค้ดที่ซับซ้อนสูงได้ลำบาก
ทาง Cloudflare เลือกจะพัฒนาพรอกซี่ขึ้นมาใหม่ด้วยภาษา Rust เพราะมีประสิทธิภาพที่ดี และการพัฒนาโครงการเองทำให้ยืดหยุ่นต่อการใช้งานนอกมาตรฐาน เช่น พรอกซี่บางตัวไม่รองรับ HTTP status ที่สูงกว่า 599 แม้ว่าจะมีคนใช้งานนอกมาตรฐานอยู่บ้างก็ตาม
ตอนนี้ Pingora ถูกใช้งานใน request แทบทั้งหมดที่ต้องขอข้อมูลจากต้นทาง (origin server) ระยะเวลาหน่วงก่อนได้รับไบต์แรก (time to first byte - TTFB) ลดลงที่ค่ามัธยฐาน 5ms เพราะสามารถแชร์ connection pool ร่วมกันได้ทั้งเซิร์ฟเวอร์ ทำให้ไม่เสียเวลาเชื่อมต่อใหม่ อัตราการใช้ซีพียูลดลง 70% และใช้หน่วยความจำลดลง 67% เพราะย้ายโค้ดจาก Lua ใน NGINX มาสู่ Rust
ที่มา - Cloudflare

on
ที่มา NGINX -> Cloudflare
gooGof Thu, 15/09/2022 - 06:22
ที่มา NGINX -> Cloudflare
คนจริง อยากได้ต้องทำเอง อิอิ
btoy Thu, 15/09/2022 - 08:04
คนจริง อยากได้ต้องทำเอง อิอิ
ที่มา - NGINX
TeamKiller Thu, 15/09/2022 - 08:48
นี่ ต้องเป็น Cloud flare หรือเปล่าครับ ลิงค์ไปก็เป็น blog ของ cloudflare
ที่สำคัญจะ open source ด้วยนะ
blackdemon Thu, 15/09/2022 - 10:32
ที่สำคัญจะ open source ด้วยนะ, nginx เตรียมปาดเหงื่อ
Web server
iDan Thu, 15/09/2022 - 11:13
Web server แต่ละตัวต่างเกิดมาด้วยจุดประสงค์ที่แตกต่างกัน ไม่สามารถใช้ทดแทนกันได้ทั้งหมด ถึง Apache จะกินแรม และ Nginx จะเร็วกว่า 2.5 เท่า แต่ Apache ก็ได้เปรียบในเรื่องความปลอดภัย ฟังก์ชั่น และฟีเจอร์ต่าง ๆ ดังนั้นจะเลือกข้างไปก็เท่านั้น
เลือกข้างไปก็เท่านั้น ทำไมไม่เอาข้อดีทั้ง 2 มารวมกันล่ะ?
ผมว่า ตัวนี้ก็เหมือนกันครับ เกิดขึ้นมาเพราะจุดประสงค์ที่สร้างมันขึ้นมาแตกต่างไป
เกรงว่ามันจะได้ข้อเสียของทั้ง
osmiumwo1f Thu, 15/09/2022 - 11:13
In reply to Web server by iDan
เกรงว่ามันจะได้ข้อเสียของทั้งคู่มารวมกันแทนครับ
เอาจริง Nginx
rattananen Thu, 15/09/2022 - 11:29
เอาจริง Nginx ไม่ได้ออกแบบมาเพื่อ use case แบบ Cloudflare ด้วย
ถ้าอยากคุม connection เองแบบนี้เขียนเองเหมาะกว่า (แต่ implement HTTP protocol เองมันก็จะเหนื่อยหน่อย)