Pengimbang beban CPU baharu daripada MIT

Sistem Shenango dirancang untuk digunakan di pusat data.

Pengimbang beban CPU baharu daripada MIT
/ foto Marco Verch CC BY

Menurut salah satu pembekal, pusat data menggunakan hanya 20–40% daripada kuasa pengkomputeran yang ada. Pada beban tinggi penunjuk ini boleh mencapai 60%. Pengagihan sumber ini membawa kepada kemunculan apa yang dipanggil "pelayan zombie". Ini adalah mesin yang selalu terbiar, membazir tenaga. Hari ini 30% pelayan di dunia tiada kerja, menggunakan tenaga elektrik bernilai $30 bilion setahun.

MIT memutuskan untuk memerangi penggunaan sumber pengkomputeran yang tidak cekap.

Pasukan kejuruteraan telah membangunkan sistem pengimbangan beban pemproses dipanggil Shenango. Tujuannya adalah untuk memantau keadaan penimbal tugas dan mengagihkan semula proses yang tersekat (yang tidak dapat menerima masa CPU) kepada mesin bebas.

Cara Shenango berfungsi

Shenango ialah perpustakaan Linux dalam C dengan pengikatan Rust dan C++. Kod projek dan aplikasi ujian diterbitkan dalam repositori pada GitHub.

Penyelesaiannya adalah berdasarkan algoritma IOKernel, yang berjalan pada teras khusus sistem berbilang pemproses. Ia menguruskan permintaan CPU menggunakan rangka kerja DPDK, yang membolehkan aplikasi berkomunikasi secara langsung dengan peranti rangkaian.

IOKernel memutuskan kernel mana untuk mewakilkan tugas tertentu. Algoritma juga menentukan bilangan teras yang diperlukan. Untuk setiap proses, teras utama (dijamin) dan teras tambahan (boleh pecah) ditentukan - yang terakhir dilancarkan sekiranya berlaku peningkatan mendadak dalam bilangan permintaan kepada CPU.

Barisan permintaan IOKernel disusun sebagai penampan cincin. Setiap lima mikrosaat, algoritma menyemak untuk melihat sama ada semua tugas yang diberikan kepada teras telah selesai. Untuk melakukan ini, ia membandingkan lokasi semasa kepala penampan dengan kedudukan sebelumnya ekornya. Jika ternyata ekor sudah berada dalam baris gilir pada masa semakan sebelumnya, sistem mencatatkan beban penimbal yang berlebihan dan memperuntukkan teras tambahan untuk proses tersebut.

Apabila mengagihkan beban, keutamaan diberikan kepada teras yang mana proses yang sama telah dilaksanakan lebih awal dan sebahagiannya kekal dalam cache, atau kepada mana-mana teras terbiar.

Pengimbang beban CPU baharu daripada MIT

Shenango juga mengambil pendekatan kerja mencuri. Teras yang diperuntukkan untuk menjalankan satu aplikasi memantau bilangan tugas yang dimiliki oleh satu sama lain. Jika satu teras menyelesaikan senarai tugasnya sebelum yang lain, maka ia "meringankan" sebahagian daripada beban daripada jirannya.

Kelebihan dan kekurangan

Pada menurut jurutera dari MIT, Shenango mampu memproses lima juta permintaan sesaat dan mengekalkan purata masa tindak balas 37 mikrosaat. Pakar mengatakan bahawa dalam beberapa kes teknologi boleh meningkatkan kadar penggunaan pemproses di pusat data kepada 100%. Hasilnya, pengendali pusat data akan dapat menjimatkan pembelian dan penyelenggaraan pelayan.

Potensi Penyelesaian meraikan dan pakar dari universiti lain. Menurut seorang profesor dari institut Korea, sistem MIT akan membantu mengurangkan kelewatan dalam perkhidmatan web. Sebagai contoh, ia akan berguna di kedai dalam talian. Pada hari jualan malah terdapat kelewatan kedua dalam pemuatan halaman ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ kepada penurunan bilangan paparan tapak sebanyak 11%. Pengagihan beban segera akan membantu melayani lebih ramai pelanggan.

Teknologi ini masih mempunyai kelemahan - ia tidak menyokong multipemproses NOMBOR-sistem di mana cip disambungkan kepada modul memori yang berbeza dan tidak "berkomunikasi" antara satu sama lain. Dalam kes ini, IOKernel boleh mengawal selia operasi kumpulan pemproses yang berasingan, tetapi bukan semua cip pelayan.

Pengimbang beban CPU baharu daripada MIT
/ foto Tim Reckmann CC BY

Teknologi yang serupa

Sistem pengimbangan beban pemproses lain termasuk Arachne. Ia mengira berapa banyak teras yang diperlukan oleh aplikasi apabila ia bermula, dan mengedarkan proses mengikut penunjuk ini. Menurut pengarang, kependaman maksimum aplikasi di Arachne adalah kira-kira 10 ribu mikrosaat.

Teknologi ini dilaksanakan sebagai perpustakaan C++ untuk Linux, dan kod sumbernya tersedia di GitHub.

Alat pengimbangan lain ialah ZygOS. Seperti Shenango, teknologi menggunakan kaedah mencuri kerja untuk mengagihkan semula proses. Menurut pengarang ZygOS, kependaman aplikasi purata apabila menggunakan alat adalah kira-kira 150 mikrosaat, dan maksimum ialah kira-kira 450 mikrosaat. Kod projek juga berada dalam domain awam.

Penemuan

Pusat data moden terus berkembang. Trend yang semakin meningkat amat ketara dalam pasaran pusat data berskala besar: kini di dunia ada 430 pusat data hiperskala, tetapi pada tahun-tahun akan datang bilangan mereka mungkin meningkat sebanyak 30%. Atas sebab ini, teknologi pengimbangan beban pemproses akan mendapat permintaan yang tinggi. Sistem seperti Shenango sudah tersedia melaksanakan syarikat besar, dan bilangan alat tersebut hanya akan berkembang pada masa hadapan.

Siaran daripada Blog IaaS Perusahaan Pertama:

Sumber: www.habr.com

Tambah komen