Penyeimbang beban CPU baru dari MIT

Sistem Shenango rencananya akan digunakan di pusat data.

Penyeimbang beban CPU baru dari MIT
/ foto Marco Verch CC BY

Menurut salah satu penyedia, pusat data menggunakan hanya 20–40% dari daya komputasi yang tersedia. Pada beban tinggi, indikator ini bisa mencapai 60%. Distribusi sumber daya ini menyebabkan munculnya apa yang disebut “server zombie”. Ini adalah mesin yang sering kali menganggur dan membuang-buang energi. Saat ini 30% server di dunia tanpa pekerjaan, mengkonsumsi listrik senilai $30 miliar per tahun.

MIT memutuskan untuk memerangi penggunaan sumber daya komputasi yang tidak efisien.

tim teknik telah dikembangkan sistem penyeimbangan beban prosesor yang disebut Shenango. Tujuannya adalah untuk memantau keadaan buffer tugas dan mendistribusikan kembali proses yang macet (yang tidak dapat menerima waktu CPU) ke mesin bebas.

Cara kerja Shenango

Shenango adalah perpustakaan Linux dalam C dengan binding Rust dan C++. Kode proyek dan aplikasi pengujian dipublikasikan di repositori di GitHub.

Solusinya didasarkan pada algoritma IOKernel, yang berjalan pada inti khusus dari sistem multiprosesor. Ia mengelola permintaan CPU menggunakan kerangka kerja DPDK, yang memungkinkan aplikasi berkomunikasi langsung dengan perangkat jaringan.

IOKernel memutuskan kernel mana yang akan didelegasikan tugas tertentu. Algoritme juga menentukan berapa banyak inti yang dibutuhkan. Untuk setiap proses, inti utama (dijamin) dan inti tambahan (yang dapat meledak) ditentukan - yang terakhir diluncurkan jika terjadi peningkatan tajam dalam jumlah permintaan ke CPU.

Antrian permintaan IOKernel diatur sebagai penyangga cincin. Setiap lima mikrodetik, algoritme memeriksa apakah semua tugas yang ditugaskan ke inti telah selesai. Untuk melakukan hal ini, ia membandingkan lokasi kepala buffer saat ini dengan posisi ekornya sebelumnya. Jika ternyata tail sudah ada di antrian pada saat pemeriksaan sebelumnya, sistem mencatat kelebihan buffer dan mengalokasikan inti tambahan untuk proses tersebut.

Saat mendistribusikan beban, prioritas diberikan kepada inti di mana proses yang sama telah dieksekusi sebelumnya dan sebagian tetap berada di cache, atau ke inti yang menganggur.

Penyeimbang beban CPU baru dari MIT

Shenango juga mengambil pendekatan tersebut mencuri pekerjaan. Inti yang dialokasikan untuk menjalankan satu aplikasi memantau jumlah tugas yang dimiliki masing-masing aplikasi. Jika salah satu inti menyelesaikan daftar tugasnya sebelum yang lain, maka inti tersebut “meringankan” sebagian beban dari tetangganya.

Keuntungan dan kerugiannya

Pada menurut insinyur dari 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 ini dapat meningkatkan tingkat pemanfaatan prosesor di pusat data hingga 100%. Hasilnya, operator pusat data akan dapat menghemat pembelian dan pemeliharaan server.

Potensi Solusi rayakan dan spesialis dari universitas lain. Menurut seorang profesor dari sebuah institut Korea, sistem MIT akan membantu mengurangi penundaan layanan web. Misalnya, ini akan berguna di toko online. Pada hari-hari penjualan bahkan ada penundaan kedua dalam pemuatan halaman приводит penurunan jumlah tampilan situs sebesar 11%. Distribusi beban yang cepat akan membantu melayani lebih banyak klien.

Teknologi ini masih memiliki kekurangan - tidak mendukung multiprosesor NUMA-sistem di mana chip terhubung ke modul memori yang berbeda dan tidak “berkomunikasi” satu sama lain. Dalam hal ini, IOKernel dapat mengatur pengoperasian sekelompok prosesor yang terpisah, tetapi tidak semua chip server.

Penyeimbang beban CPU baru dari MIT
/ foto Tim Rekmann CC BY

Teknologi serupa

Sistem penyeimbangan beban prosesor lainnya termasuk Arachne. Ini menghitung berapa banyak inti yang dibutuhkan suatu aplikasi saat dimulai, dan mendistribusikan proses sesuai dengan indikator ini. Menurut penulis, latensi maksimum suatu aplikasi di Arachne adalah sekitar 10 ribu mikrodetik.

Teknologi ini diimplementasikan sebagai perpustakaan C++ untuk Linux, dan kode sumbernya tersedia di GitHub.

Alat penyeimbang lainnya adalah ZygOS. Seperti Shenango, teknologi ini menggunakan metode pencurian pekerjaan untuk mendistribusikan ulang proses. Menurut penulis ZygOS, rata-rata latensi aplikasi saat menggunakan alat ini adalah sekitar 150 mikrodetik, dan maksimum sekitar 450 mikrodetik. Kode proyeknya juga berada dalam domain publik.

Temuan

Pusat data modern terus berkembang. Tren peningkatan ini terutama terlihat di pasar pusat data skala besar: sekarang di dunia ada 430 pusat data skala besar, namun di tahun-tahun mendatang jumlahnya mungkin meningkat sebesar 30%. Oleh karena itu, teknologi penyeimbangan beban prosesor akan banyak diminati. Sistem seperti Shenango sudah tersedia melaksanakan perusahaan besar, dan jumlah alat tersebut akan terus bertambah di masa depan.

Postingan dari blog pertama tentang IaaS perusahaan:

Sumber: www.habr.com

Tambah komentar