26 poin oleh yunyun0505 2022-09-15 | 5 komentar | Bagikan ke WhatsApp

nginx memiliki keterbatasan

  • Karena hanya menggunakan satu worker untuk setiap request, ada ketidakseimbangan dalam pemakaian core CPU
  • Karena terdapat connection pool per worker, tingkat pemakaian ulang koneksi TCP dan TLS buruk -> TTFB menjadi tinggi
  • Selain itu, mereka juga mengimplementasikan sendiri fitur-fitur yang dibutuhkan untuk mengoperasikan nginx, tetapi nginx yang dirancang dengan C tidak memory-safe sehingga bahkan engineer berpengalaman pun kerap melakukan kesalahan

Pingora

  • Cloudflare juga menerima banyak request yang tidak sesuai spesifikasi RFC, tetapi library pihak ketiga (hyper) diimplementasikan dengan kepatuhan RFC yang ketat, sehingga perlu usaha tambahan untuk memperluasnya dan akhirnya mereka membangunnya sendiri
  • Rust dipilih karena dapat menggantikan apa yang bisa dilakukan C dengan cara yang memory-safe tanpa penurunan performa
  • Untuk memudahkan berbagi connection pool, mereka mengadopsi sistem scheduling berbasis work-stealing, dan tingkat pemakaian ulang meningkat. Dibanding sebelumnya, kini hanya membuat koneksi sekitar 1/3 per detik
  • Dibanding sebelumnya, penggunaan CPU 70% lebih rendah dan memori 67% lebih sedikit
  • Direncanakan akan dirilis sebagai open source di masa mendatang

5 komentar

 
functor 2022-09-27

CPU 70% dan memori 67% yang menganggur itu benar-benar mengejutkan..

 
ifmkl 2022-09-16

Wah, saya juga sudah lama sangat terbantu dengan nginx, tapi kalau ini dirilis sebagai open source saya benar-benar ingin langsung mencobanya.

 
forteleaf 2022-09-16

Meski belajar Rust, sepertinya tetap tidak ada tempat buat cari kerja.

 
jungmin1237 2022-09-15

Rust ya, saya suka.

 
jjpark78 2022-09-15

Dalam pemrograman sistem, Rust tampaknya semakin menjadi yang paling menonjol..