26 điểm bởi yunyun0505 2022-09-15 | 5 bình luận | Chia sẻ qua WhatsApp

nginx có những giới hạn nhất định

  • Mỗi request chỉ dùng một worker duy nhất nên tồn tại sự mất cân bằng trong việc sử dụng các lõi CPU
  • Vì có connection pool theo từng worker nên hiệu suất tái sử dụng kết nối TCP và TLS kém -> TTFB tăng cao
  • Ngoài ra, Cloudflare cũng tự triển khai các tính năng cần thiết để vận hành nginx, nhưng nginx được thiết kế bằng C nên không bảo đảm an toàn bộ nhớ, vì vậy ngay cả các kỹ sư giàu kinh nghiệm cũng đôi khi mắc lỗi

Pingora

  • Cloudflare nhận rất nhiều request không theo chuẩn RFC, trong khi thư viện bên thứ ba (hyper) được triển khai theo hướng tuân thủ RFC nghiêm ngặt, nên nếu muốn mở rộng sẽ cần thêm nhiều công sức, vì vậy họ đã tự xây dựng
  • Rust được chọn vì có thể thay thế những gì C làm được theo cách an toàn bộ nhớ mà không làm giảm hiệu năng
  • Để dễ dàng chia sẻ connection pool, họ áp dụng hệ thống lập lịch theo kiểu work-stealing, giúp tăng tỷ lệ tái sử dụng. So với trước đây, số lượng kết nối được thiết lập mỗi giây giảm xuống còn khoảng 1/3
  • So với trước đây, mức sử dụng CPU giảm 70%, bộ nhớ giảm 67%
  • Dự kiến sẽ được công bố dưới dạng mã nguồn mở trong tương lai

5 bình luận

 
functor 2022-09-27

70% CPU và 67% bộ nhớ nhàn rỗi thật đáng kinh ngạc..

 
ifmkl 2022-09-16

Ồ, tôi cũng đã dùng nginx rất tốt rồi, nếu cái này được phát hành mã nguồn mở thì tôi muốn thử ngay.

 
forteleaf 2022-09-16

Dù học Rust thì cũng chẳng có chỗ nào để xin việc.

 
jungmin1237 2022-09-15

Rust à, nghe hợp gu thật đấy

 
jjpark78 2022-09-15

Có vẻ như ít nhất trong mảng lập trình hệ thống, Rust đang dần trở nên gần như độc tôn..