Sistem Shenango direncanakan untuk digunakan di pusat data.
/ foto Marco Verch CC OLEHMenurut salah satu penyedia, pusat data hanya
menggunakan 20-40% dari daya komputasi yang tersedia. Pada beban tinggi, angka ini
bisa mencapai 60% . Distribusi sumber daya ini menyebabkan munculnya apa yang disebut "server zombie." Ini adalah mesin yang diam sebagian besar waktu, menghabiskan energi. Saat ini, 30% server di dunia
tidak memiliki pekerjaan , menghabiskan listrik dengan $ 30 miliar per tahun.
MIT memutuskan untuk menangani penggunaan sumber daya komputasi yang tidak efisien.
Sebuah tim insinyur telah
mengembangkan sistem penyeimbangan beban untuk prosesor yang disebut Shenango. Tujuannya adalah untuk memantau status buffer tugas dan mendistribusikan kembali proses "macet" (yang tidak dapat menerima waktu prosesor) untuk membebaskan mesin.
Cara Kerja Shenango
Shenango adalah perpustakaan Linux berbasis-C dengan ikatan Rust dan C ++. Kode proyek dan aplikasi pengujian diterbitkan dalam
repositori di GitHub.
Basis solusinya adalah algoritma IOKernel, yang berjalan pada inti khusus dari sistem multiprosesor. Ia mengelola permintaan CPU menggunakan kerangka kerja
DPDK , yang memungkinkan aplikasi berinteraksi secara langsung dengan perangkat jaringan.
IOKernel memutuskan kernel mana yang akan melewati tugas tertentu. Algoritma ini juga memutuskan berapa banyak core yang dibutuhkan. Untuk setiap proses, kernel utama (dijamin) dan tambahan (burstable) didefinisikan - yang kedua diluncurkan jika terjadi peningkatan tajam dalam jumlah permintaan ke CPU.
Antrian permintaan IOKernel diatur sebagai
buffer cincin . Setiap lima mikrodetik, algoritme memeriksa apakah semua tugas yang diberikan ke kernel telah selesai. Untuk melakukan ini, ia membandingkan lokasi saat ini dari "kepala" buffer dengan posisi "ekor" sebelumnya. Jika ternyata ekor sudah berada dalam antrian pada saat pemeriksaan sebelumnya, sistem mencatat buffer overload dan mengalokasikan kernel tambahan untuk proses.
Saat mendistribusikan beban, prioritas diberikan kepada kernel yang prosesnya sama dilakukan sebelumnya dan sebagian tetap di cache, atau ke kernel idle.

Shenango juga mengambil pendekatan
mencuri pekerjaan . Kernel yang dialokasikan untuk pengoperasian satu aplikasi memantau jumlah tugas satu sama lain. Jika satu core menyelesaikan daftar tugasnya lebih awal dari yang lain, maka ia "menghilangkan" sebagian beban dari tetangganya.
Keuntungan dan kerugian
Menurut para insinyur di MIT, Shenango mampu memproses lima juta permintaan per detik dan mempertahankan waktu respons rata-rata 37 mikrodetik. Para ahli mengatakan bahwa dalam beberapa kasus teknologi dapat meningkatkan pemanfaatan prosesor di pusat data hingga 100%. Akibatnya, operator pusat data akan dapat menghemat pembelian dan pemeliharaan server.
Solusi potensial juga
dicatat oleh spesialis dari universitas lain. Menurut seorang profesor dari Institut Korea, sistem dari MIT akan membantu mengurangi keterlambatan dalam pekerjaan layanan web. Misalnya, berguna dalam pengoperasian toko online. Pada hari-hari penjualan, bahkan keterlambatan kedua dalam pemuatan halaman
menyebabkan penurunan jumlah tampilan situs sebesar 11%. Perimbangan beban online akan membantu melayani lebih banyak pelanggan.
Teknologi ini masih memiliki kelemahan - tidak mendukung sistem
NUMA multiprosesor di mana chip terhubung ke modul memori yang berbeda dan tidak "berkomunikasi" satu sama lain. Dalam hal ini, IOKernel dapat mengatur operasi kelompok prosesor yang terpisah, tetapi tidak semua chip server.
/ foto Tim Reckmann CC BYTeknologi serupa
Di antara sistem penyeimbangan beban prosesor lainnya, Arachne dapat dibedakan. Ini menghitung berapa inti yang dibutuhkan aplikasi pada saat peluncurannya, dan mendistribusikan proses sesuai dengan indikator ini. Menurut penulis, latensi aplikasi maksimum di Arachne adalah sekitar 10 ribu mikrodetik.
Teknologi ini diimplementasikan sebagai pustaka C ++ untuk Linux, dan kode sumbernya ada di
GitHub .
Alat penyeimbang lainnya adalah ZygOS. Seperti Shenango, teknologi menggunakan metode pencurian pekerjaan untuk mendistribusikan kembali proses. Menurut penulis ZygOS, penundaan rata-rata dalam aplikasi saat menggunakan alat adalah sekitar 150 mikrodetik, dan maksimumnya adalah sekitar 450 mikrodetik. Kode proyek juga
dalam domain publik .
Kesimpulan
Pusat data modern terus berkembang, terutama tren kenaikan terlihat di pasar pusat data hyperscale: sekarang di dunia
ada 430 pusat data hyperscale, tetapi di tahun-tahun mendatang jumlah mereka dapat meningkat sebesar 30%. Untuk alasan ini, teknologi load balancing CPU akan sangat diminati. Sistem seperti Shenango sudah
diterapkan oleh perusahaan besar, dan di masa depan jumlah alat tersebut hanya akan bertambah.
Posting dari Blog IaaS Corporate Pertama: