Cloudflare bertukar kepada Pingora, proksinya sendiri yang ditulis dalam Rust

Cloudflare berhijrah dari NGINX ke Pingora

Pingora, ialah proksi HTTP baharu yang dicipta oleh cloudflare menggunakan Rust

Cloudflare diumumkan baru-baru ini yang sedang berhijrah rangkaian penghantaran kandungan anda untuk menggunakan proksi «pingora», yang menonjol kerana ditulis dalam Rust. The proksi baharu diganti Konfigurasi berasaskan pelayan NGINX dengan skrip Lua dan mengendalikan lebih satu bilion permintaan setiap hari.

Adalah diperhatikan bahawa peralihan kepada proksi khusus «Pingora» membenarkan bukan sahaja untuk melaksanakan fungsi baru dan meningkatkan keselamatan kerana kerja yang selamat dengan ingatan, tetapi juga membawa kepada peningkatan yang ketara dalam prestasi dan penjimatan sumber.

Penyelesaian berasaskan Pingora tidak memerlukan penggunaan Lua dan menggunakan seni bina dioptimumkan beban Cloudflare, menggunakan 70% kurang sumber CPU dan 67% kurang memori semasa memproses jumlah trafik yang sama.

Untuk sekian lama, sistem proksi trafik antara pengguna dan pelayan akhir berdasarkan skrip NGINX dan Lua memenuhi keperluan Cloudflare, tetapi apabila rangkaian berkembang dan kerumitannya meningkat, penyelesaian universal tidak mencukupi, kedua-duanya dari segi prestasi dan had dalam kebolehlanjutan dan pelaksanaan peluang baharu untuk pelanggan.

Khususnya, terdapat kesukaran untuk menambah fungsi di luar gerbang mudah dan pengimbang beban. Sebagai contoh, sekiranya pelayan tidak dapat memproses permintaan, adalah perlu untuk mengubah hala permintaan ke pelayan lain, menyediakannya dengan set pengepala HTTP yang berbeza.

Daripada seni bina dengan permintaan dibahagikan kepada proses kerja berasingan (pekerja), Pingora menggunakan model berbilang benang, yang dalam senario penggunaan Cloudflare (kepekatan tinggi trafik dari tapak berbeza dengan anjakan statistik yang besar) menunjukkan pengagihan sumber yang lebih cekap antara teras CPU.

Khususnya, mengikat permintaan tidak seimbang kepada proses dalam nginx membawa kepada beban tidak seimbang pada teras CPU, akibatnya permintaan intensif sumber dan penyekatan I/O memperlahankan pemprosesan permintaan lain.

Selain itu, mengikat kumpulan sambungan kepada proses pengawal tidak membenarkan penggunaan semula sambungan yang telah ditetapkan daripada proses pengawal lain, yang mengurangkan kecekapan apabila terdapat sejumlah besar proses pengawal.

Pengenalan Pingora memungkinkan untuk mengurangkan bilangan operasi sebanyak 160 kali mewujudkan hubungan baharu dan meningkatkan bahagian permintaan yang digunakan semula daripada 87,1% kepada 99,92%. Selain penyambungan semula yang dikurangkan dan penggunaan teras CPU yang lebih cekap, peningkatan prestasi proksi baharu disebabkan terutamanya oleh penyingkiran pemacu Lua perlahan yang digunakan dengan nginx.

Bahasa Rust dipilih kerana ia membenarkan prestasi tinggi digabungkan dengan ketersediaan alat selamat ingatan. Disebutkan bahawa walaupun jurutera Cloudflare yang berkelayakan tinggi dan semakan kod, program yang ditulis dalam bahasa C tidak dapat mengelakkan pepijat yang membawa kepada masalah ingatan (contohnya, kelemahan dalam penghurai HTML).

Bagi kod baharu, kami bercakap tentang kes analisis ranap di Pingora, yang ternyata bukan disebabkan oleh masalah dalam aplikasi, tetapi oleh pepijat dalam kernel Linux dan kegagalan perkakasan.

Selain itu, boleh diperhatikan bahawa Linus Torvalds mengulas mengenai kemasukan sokongan untuk bahasa Rust dalam kernel Linux, yang dinyatakan pada persidangan Sidang Kemuncak Eropah Sumber Terbuka yang berlangsung hari ini. Kernel 6.0 tidak menyertakan patch untuk membangunkan pemacu peranti dalam bahasa Rust, tetapi menurut Linus, mereka mungkin diterima dalam kernel 6.1, anda tidak akan mengambil kesempatan daripada penyepaduan.

Sebagai sebab untuk menambah sokongan untuk Rust, sebagai tambahan kepada kesan keselamatan yang positif, Linus juga mengambil peluang untuk meningkatkan minat dalam mengusahakan kernel daripada peserta baharu, yang penting dalam konteks veteran yang semakin tua.

Akhirnya sekiranya anda berminat untuk mengetahui lebih lanjut mengenainya, anda boleh menyemak butirannya di pautan berikut.


Tinggalkan komen anda

Alamat email anda tidak akan disiarkan. Ruangan yang diperlukan ditanda dengan *

*

*

  1. Bertanggungjawab untuk data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengendalikan SPAM, pengurusan komen.
  3. Perundangan: Persetujuan anda
  4. Komunikasi data: Data tidak akan disampaikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Pangkalan data yang dihoskan oleh Occentus Networks (EU)
  6. Hak: Pada bila-bila masa anda boleh menghadkan, memulihkan dan menghapus maklumat anda.