12 puan yazan GN⁺ 2025-04-22 | 2 yorum | WhatsApp'ta paylaş
  • ABD’de veri merkezi elektrik tüketimi 2023 itibarıyla ülke elektriğinin yaklaşık %4’ü, 2028’e kadar %12’ye çıkması bekleniyor
  • Waterloo Üniversitesi araştırma ekibi, Linux çekirdeğinin ağ işleme yöntemini iyileştirerek veri merkezlerinin güç tüketimini en fazla %30 azaltabilecek bir yöntem geliştirdi
  • Temel fikir, busy polling yönteminin dinamik kontrolü; trafik durumuna göre kesme yöntemi ile polling arasında otomatik geçiş yapılıyor
  • Bu değişiklik yalnızca yaklaşık 30 satırlık kod düzenlemesiyle hayata geçirildi ve Linux 6.13 çekirdeğine resmen eklendi
  • Linux tabanlı veri merkezleri ve web sunucularında geniş çaplı uygulama potansiyeli bulunuyor; ayrıca verimlilik odaklı yazılım geliştirme anlayışına dönüşün altı çiziliyor

Veri merkezi elektrik tüketimi, Linux çekirdek kodunda yalnızca 30 satırla %30’a kadar azaltılabilir

Artan elektrik tüketimine dair kaygılar

  • Dünya genelindeki web trafiğinin büyük bölümü veri merkezleri üzerinden akıyor ve bu yapı yapay zeka hizmetleri gibi yüksek enerji tüketimli uygulamaların temelini oluşturuyor
  • ABD özelinde, 2023’te elektriğin yaklaşık %4’ünü veri merkezleri kullandı ve bu oranın 2028’e kadar %12’ye çıkması öngörülüyor

Sorunun özü: Linux çekirdeğinin ağ işleme yöntemi

  • Linux çekirdeği, ağ paketlerini işlerken kesme ve polling yöntemlerini birlikte kullanıyor
    • Kesme: Yeni bir paket geldiğinde CPU mevcut işi durdurup onu işliyor
    • busy polling: Gecikmeyi azaltmak için paket olsun ya da olmasın düzenli kontrol yapılıyor → verimsizlik

Çözüm: busy polling’i dinamik olarak değiştirmek

  • Waterloo Üniversitesi’nden Prof. Martin Karsten’ın ekibi, ağ trafiğine göre
    • Trafik yoğunsa: busy polling kullanıyor
    • Trafik düşükse: kesme yöntemine geçiyor
  • Sonuç olarak gereksiz güç tüketimi azalıyor ve esneklik artıyor

Kod değişikliği ve mevcut durum

  • Fastly mühendisi Joe Damato ile iş birliği yapılarak, mevcut çekirdek kodunun yeniden düzenlenmesi yoluyla uygulandı
  • Yeni kod yazmadan, mevcut yapıyı değiştirerek yaklaşık 30 satırlık kod düzenlemesi yapıldı
  • Linux 6.13 çekirdeğine (Ocak 2025’te yayımlandı) resmen dahil edildi
    çekirdek commit’i

Enerji tasarrufu etkisi

  • Ağ ağırlıklı uygulamalarda güç tüketiminde %30’a kadar azalma
    • Genel uygulamalarda bu oran daha düşük olabilir
  • Trafikteki değişimlere otomatik uyum sağladığı için veri merkezleri için uygun
  • Linux tabanlı web sunucularına da (nginx, Apache vb.) genişletilebilir

Topluluğa yayılım ve açık kaynak etkisi

  • Damato, ilgili tekniği Fastly’nin H2O sunucusuna da uygulamayı planlıyor
  • Kod açık kaynaklı çekirdekte yer aldığından, diğer web sunucusu geliştiricileri de bunu referans alabilir
  • Enerji verimliliği odaklı geliştirme kültürünün yeniden canlanması için tetikleyici olması bekleniyor

Araştırmanın düşünsel anlamı

  • “90’larda kaynak optimizasyonu bilgisayar mühendisliğinin temeli”ydi; ancak son 20 yılda odak performansa kaydığı için verimlilik büyük ölçüde göz ardı edildi
  • Bu çalışma, “küçük kod iyileştirmelerinin büyük enerji tasarruflarına yol açabileceğini” gösteriyor ve sürdürülebilir yazılım geliştirmenin yönüne işaret ediyor

2 yorum

 
GN⁺ 2025-04-22
Hacker News yorumu
  • Linux, yüksek performanslı ağ iletişimi için busy polling özelliği ekledi. Linux yazılımlarının çoğu bunu kullanmıyor, ancak veri merkezlerinde kullanılan yazılımlar sistem meşgul değilken enerji açısından verimsiz oluyor. Bu yama, sistem meşgul değilken bunu kapatıp enerji verimliliğini geri kazandırmayı mümkün kılıyor.

    • Makale başlığı biraz yanıltıcı. Sanki masaüstü iş yüklerine de uygulanabilirmiş gibi duyuluyor, ama aslında veri merkezleri için. Başlığa "in datacenters" ifadesi eklenseydi karışıklık önlenebilirdi.
  • Yüksek performanslı veri merkezi işlerinin büyük bir kısmı aslında Linux çekirdeğinin ağ yığınından geçmiyor.

    • Bunun yerine DPDK, XDP veya Onload ya da VMA gibi kullanıcı alanı yığınları kullanılıyor. Çoğu zaman SmartNICs donanım offload işlemini yapıyor. Bu durumlarda bu yama geçerli değil.
    • Ancak bu yama, çekirdeğin veri yolunda olduğu kurulumlarda (CDN'ler, ingress düğümleri, VM'ler, gömülü Linux sistemleri vb.) açıkça yardımcı oluyor. Performans veya gecikme sorunları nedeniyle zaten çekirdeği baypas eden işlerde büyük bir etkisi olmayacaktır. %30 güç tasarrufu başlığı büyük ölçüde bağlama bağlı olacaktır.
  • Bu değişiklik hakkında daha fazla ayrıntı için https://lwn.net/Articles/1008399/ adresine bakılabilir.

  • Gerçekten harika bir değişiklik. Yüksek başarımlı hesaplama uzmanı olarak, verimsiz kod yüzünden ne kadar enerjinin boşa harcandığını ve gezegensel ölçekte bilişim büyüdükçe bunun ne kadar büyük bir sorun haline geldiğini sık sık merak etmişimdir.

    • Ben şahsen, kodun mümkün olduğunca verimli olması yönünde ahlaki bir sorumluluk hissediyorum. Özellikle de iş yüzlerce CPU üzerinde aylar boyunca çalıştığında.
  • Buna karşılık Meta, LLM eğitimi sırasında güç tüketimini daha istikrarlı tutmak için GPU'ları meşgul tutan bir hack'e sahip. Örneğin batch senkronizasyonu sırasında büyük bir güç düşüşü istemiyorlar.

  • Bu, çekirdekte "uyarlamalı interrupt moderation" artık kullanılmıyor mu demek? Bununla ilgili işlerle uğraşmayalı 15 yıldan fazla oldu, ama ağ hızı düşükken interrupt kullanıp, belli bir eşiği geçince interrupt'ları kapatıp polling kullanan bir uyarlama çekirdekte vardı.

    • Çözmeye çalıştığı sorun, ani ve dramatik trafik değişimleriydi. Örneğin switching içinde bir loop oluşup buna bağlı bir packet storm ortaya çıktığında. Bu durumda interrupt'lar o kadar hızlı geliyordu ki sistemin interrupt'ları devre dışı bırakabilecek kadar interrupt dışı zaman bulması mümkün olmuyordu. Bu yüzden çözüm, Linux yönlendiricinin ağ arayüzünden daha fazla çekirdeğe sahip olmasını sağlamaktı.
  • Bir cümlede "Up To" geçiyorsa, kelimenin tam anlamıyla her şey mümkündür.

  • Konuyla doğrudan ilgili değil ama Joe Damato hakkında bir yazıyı yeniden görmek sevindirici. Eski anıları canlandırdı. İlk kez James Gollick'in tcmalloc hakkındaki yazısını okuyup packagecloud.io'yu öğrendikten sonra Joe'nun harika yazılarına rastlamıştım.

  • Kilit paragraf:

    • "Bu enerji tasarrufunun bazı çekinceleri var. '30%, ağ yığını ya da iletişim kısmı için en iyi durum senaryosu,' diye açıklıyor Karsten. 'Uygulama ağırlıklı olarak bunu yapıyorsa %30 iyileşme görebilirsiniz. Uygulama başka birçok iş yapıyor ve arada bir ağı kullanıyorsa, %30 daha küçük bir değere düşecektir.'"
  • Bu yazı bana eski günleri hatırlattı: https://didgets.substack.com/p/finding-and-fixing-a-billion-bug

 
semanticist 27 일 전

Oo~ ilginçmiş.
Bir yandan da kusursuz bir yazılım diye bir şeyin olmadığını düşündürüyor.