- Konsumsi listrik pusat data di AS pada 2023 mencapai sekitar 4% dari listrik nasional, dan diperkirakan naik menjadi 12% pada 2028
- Tim peneliti University of Waterloo mengembangkan cara untuk mengurangi konsumsi daya pusat data hingga 30% melalui perbaikan cara kernel Linux memproses jaringan
- Intinya adalah kontrol dinamis untuk metode busy polling, yang secara otomatis beralih antara mode interrupt dan polling sesuai kondisi trafik
- Perubahan ini dapat diterapkan hanya dengan sekitar 30 baris modifikasi kode, dan telah resmi masuk ke kernel Linux 6.13
- Ada potensi penerapan yang luas pada pusat data dan web server berbasis Linux, serta menekankan pemulihan filosofi pengembangan perangkat lunak yang berfokus pada efisiensi
Konsumsi Daya Pusat Data Bisa Dipangkas hingga 30% hanya dengan 30 Baris Kode Kernel Linux
Kekhawatiran atas meningkatnya konsumsi daya
- Sebagian besar trafik web dunia diproses melalui pusat data, yang menjadi fondasi bagi aplikasi berkonsumsi daya tinggi seperti layanan AI
- Di AS, sekitar 4% listrik pada 2023 digunakan oleh pusat data, dan angka ini diperkirakan naik hingga 12% pada 2028
Inti masalah: cara kernel Linux memproses jaringan
- Kernel Linux menangani paket jaringan dengan menggabungkan metode interrupt dan polling
- Interrupt: saat paket baru datang, CPU menghentikan pekerjaan saat ini lalu memprosesnya
- busy polling: untuk mengurangi latensi, sistem memeriksa secara berkala ada tidaknya paket tanpa memedulikan kondisi → tidak efisien
Solusi: mengalihkan busy polling secara dinamis
- Tim Profesor Martin Karsten dari University of Waterloo, berdasarkan trafik jaringan, melakukan hal berikut:
- Saat trafik tinggi: menggunakan busy polling
- Saat trafik rendah: beralih ke mode interrupt
- Hasilnya, konsumsi daya yang tidak perlu berkurang dan fleksibilitas meningkat
Perubahan kode dan status penerapan
- Diimplementasikan lewat kolaborasi dengan engineer Fastly Joe Damato, dengan cara menata ulang kode kernel yang sudah ada
- Tanpa menulis kode baru, hanya dengan mengubah struktur yang ada, sekitar 30 baris kode dimodifikasi
- Telah resmi dimasukkan ke kernel Linux 6.13 (rilis Januari 2025)
→ kernel commit
Efek penghematan energi
- Pada aplikasi yang berpusat pada jaringan, penghematan daya bisa mencapai 30%
- Untuk aplikasi umum, tingkat penghematannya mungkin lebih rendah
- Karena beradaptasi otomatis terhadap perubahan trafik, pendekatan ini cocok untuk pusat data
- Dapat diperluas ke web server berbasis Linux seperti nginx dan Apache
Penyebaran di komunitas dan dampak open source
- Damato berencana menerapkan teknologi terkait juga ke server H2O milik Fastly
- Karena merupakan kode kernel open source, pengembang web server lain juga dapat menjadikannya referensi
- Diharapkan menjadi pemicu untuk memulihkan budaya pengembangan yang berfokus pada efisiensi energi
Makna filosofis dari riset ini
- “Pada era 90-an, optimasi sumber daya adalah dasar ilmu komputer,” tetapi dalam 20 tahun terakhir, fokus bergeser ke performa sehingga efisiensi terabaikan
- Riset ini menunjukkan bahwa “perbaikan kecil pada kode dapat menghasilkan penghematan energi yang sangat besar” dan menawarkan arah bagi pengembangan perangkat lunak yang berkelanjutan
2 komentar
Komentar Hacker News
Linux menambahkan fitur busy polling untuk jaringan berkinerja tinggi. Sebagian besar software Linux tidak menggunakannya, tetapi software yang dipakai di datacenter menjadi tidak efisien secara energi saat sistem tidak sibuk. Patch ini memungkinkan fitur itu dimatikan saat sistem tidak sibuk sehingga efisiensi energi bisa dipulihkan.
Banyak bagian dari beban kerja datacenter berkinerja tinggi sebenarnya tidak melewati network stack Linux kernel.
Rincian lebih lanjut tentang perubahan ini bisa dilihat di https://lwn.net/Articles/1008399/.
Ini perubahan yang sangat keren. Sebagai orang yang bekerja di komputasi berkinerja tinggi, saya sering bertanya-tanya berapa banyak energi yang terbuang karena kode yang tidak efisien, dan betapa besarnya masalah itu saat komputasi planet terus berkembang.
Sebaliknya, Meta punya hack untuk menjaga GPU tetap sibuk agar konsumsi daya lebih stabil selama pelatihan LLM. Misalnya, mereka tidak ingin terjadi penurunan daya yang besar saat sinkronisasi batch.
Apakah ini berarti "adaptive interrupt moderation" di kernel sudah tidak digunakan lagi? Saya sudah lebih dari sekitar 15 tahun tidak mengerjakan hal terkait ini, tetapi dulu kernel beradaptasi dengan memakai interrupt saat kecepatan jaringan rendah, lalu mematikan interrupt dan menggunakan polling setelah melewati titik tertentu.
Jika sebuah kalimat mengandung "Up To", secara harfiah segalanya mungkin saja.
Sedikit di luar topik, tetapi saya senang kembali membaca tulisan tentang Joe Damato. Rasanya nostalgia. Saya pertama kali mengetahui packagecloud.io setelah membaca tulisan James Gollick tentang tcmalloc, lalu menemukan tulisan-tulisan Joe yang luar biasa.
Paragraf intinya:
Tulisan ini mengingatkan saya pada kenangan lama: https://didgets.substack.com/p/finding-and-fixing-a-billion-bug
Oh~ menarik ya.
Jadi terasa juga bahwa perangkat lunak yang benar-benar sempurna memang belum ada.