2 Adımda Gerçek Zamanlı Linux Sistem Emisyon Takibi

2 Adımda Gerçek Zamanlı Linux Sistem ve Emisyon Takibi

Günümüzde bulut sunucuların, kurumsal veri merkezlerinin, masaüstü bilgisayarların ve akıllı gömülü sistemlerin ezici bir çoğunluğu Linux işletim sistemi üzerinde çalışıyor. Açık kaynak dünyasının kalbi olan Linux, hem bireysel yazılım geliştiriciler hem de küresel veri merkezleri için yüksek kararlılık sunan en esnek platformdur. Ancak bu güçlü şebekelerin ve üzerinde koşan mikroservislerin enerji tüketimleri ile dolaylı çevresel etkileri (karbon ayak izi) günümüzde siber dünyanın en önemli sürdürülebilirlik konularından biri haline gelmiştir.

Bir Linux sistemi aktif olarak çalıştığında; çekirdek (kernel) süreçleri, arka plan servisleri (daemons) ve kullanıcı uygulamaları sürekli olarak CPU, RAM ve disk gibi donanım kaynaklarını tüketir. Bu fiziksel kaynak kullanımı doğrudan elektrik enerjisi tüketimine dönüşür. Elektrik üretimi de büyük oranda fosil yakıtlardan (kömür, doğalgaz vb.) sağlandığı için, her yazılım döngüsü dolaylı olarak atmosferde sera gazı birikmesine, yani karbon emisyonu salınımına sebep olur.

Karbon emisyonu, iklim krizini ve küresel ısınmayı tetikleyen en temel unsurdur. Sistem yöneticileri ve yazılım mimarları olarak artık sadece yazdığımız kodun çalışma hızını (performansını) değil, aynı zamanda bu kodun doğada bıraktığı dijital karbon izini de izlemek kritik bir sorumluluktur. İşte tam bu vizyonla geliştirdiğimiz proje; Linux tabanlı sistemlerde çalışan süreçlerin (process) gerçek zamanlı kaynak tüketimlerini izleyerek, bunlara bağlı karbon ayak izini ve su tüketim maliyetlerini tahmini olarak hesaplamaktadır.

Hazırladığımız bu açık kaynaklı izleme paneli sayesinde; Linux sisteminizde koşan her bir sürecin ne kadar anlık güç tükettiğini, bunun kaç gram karbon karbondioksit (CO₂) emisyonuna denk geldiğini ve dolaylı olarak kaç litre su tükettiğini canlı olarak izleyebilirsiniz. Böylece yeşil yazılım (green software) prensiplerini somut verilere dökebilirsiniz.

2 Adımda Gerçek Zamanlı Linux Sistem Emisyon Takibi
2 Adımda Gerçek Zamanlı Linux Sistem Emisyon Takibi

Bir geliştirici veya sistem mühendisi olarak gün içinde sürekli sistem monitörlerini (htop, top vb.) inceleriz: CPU yükü ne kadar, bellek sınırları ne durumda, hangi PID en çok kaynak tüketiyor…
Peki şu soruyu kendinize hiç sordunuz mu?

⚡ “Sunucuda çalıştırdığım bu veritabanı veya yapay zeka sorgusu, şu anda doğaya ne kadar karbon salıyor?”

Enerji verimliliği yalnızca donanım üreticilerinin değil, aynı zamanda algoritmayı tasarlayan yazılımcıların da bir sorumluluğudur. Kodumuzun çevresel etkilerini ölçmek, sürdürülebilir bir dijital gelecek inşa etmenin ilk adımıdır.


Linux Sistem Emisyon İzleme Sisteminin Hedefleri

Linux işletim sistemi üzerinde çalışan süreçlerin enerji tüketimini ve karbon salınımlarını canlı olarak izleyen bu projenin temel işlevleri:

  • 👨‍💻 İşletim sisteminde çalışan her bir sürecin (PID) CPU, RAM ve çalışma sürelerini anlık olarak toplar.
  • ⚡ Toplanan ham kaynak verilerini kullanarak tahmini anlık güç tüketimini (Watt) hesaplar.
  • 🌫️ Tüketilen enerjiden yola çıkarak toplam CO₂ emisyonunu (kg) ve dolaylı su tüketimini (litre) hesaplar.
  • 📊 Hesaplanan verileri, Server-Sent Events (SSE) teknolojisiyle dinamik, modern ve gerçek zamanlı bir web arayüzünde görselleştirir.

Sistem Nasıl Çalışıyor? Mimarisi ve Katmanları

Sistem, veri toplama ve sunum olmak üzere iki ana katmandan oluşmaktadır:

1. Backend Servisi (Python + Flask)

  • Gelişmiş psutil Python kütüphanesi yardımıyla Linux işletim sisteminde koşan tüm aktif süreçlerin çekirdek verileri toplanır.
  • İşlemcinin anlık kullanım yüzdesi ve ayrılan RAM miktarı baz alınarak matematiksel bir güç tüketim modeli (power model) çalıştırılır.
  • Her bir süreç için:
    • Watt cinsinden anlık güç tüketimi tahmin edilir.
    • Sürecin toplam çalışma zamanı ile çarpılarak tüketilen enerji kWh cinsine çevrilir.
    • Elde edilen kWh verisi, emisyon katsayıları ile çarpılarak CO₂ miktarı (kg) ve su ayak izine (litre) dönüştürülür.

2. Frontend Arayüzü (React.js)

  • Server-Sent Events (SSE) protokolü kullanılarak Flask sunucusundan her 3 saniyede bir yeni veri akışı (push notification) alınır.
  • Çalışan süreçler CO₂ salınım miktarına göre en yüksekten en düşüğe olacak şekilde dinamik sıralanır.
  • Toplam karbon ayak izi ve su tüketim değerleri üst panelde gösterge kartları olarak sunulur.
  • Renk kodlaması ile görsel algı kolaylaştırılmıştır:
    • Yüksek karbon salınımı yapan süreçler kırmızı renk tonuyla vurgulanır.
    • Çevre dostu düşük salınımlı süreçler ise yeşil renkle işaretlenir.

Hesaplamalarda Kullanılan Emisyon Katsayıları

Sistemde, tüketilen elektrik enerjisini çevresel etkiye dönüştürürken kullanılan küresel bilimsel katsayılar ve kaynakları şu şekildedir:

Hesaplama MetriğiDönüşüm KatsayısıReferans Kaynak
CO₂ Ayak İzi0.475 kg CO₂ / kWhIEA (Uluslararası Enerji Ajansı), ecoinvent Veritabanı
Su Tüketim Oranı1.8 Litre Su / kWhWater Footprint Network Sürdürülebilirlik Raporu

Önemli Not: Bu katsayılar şebeke ortalamasını yansıtan yaklaşık ve deneysel verilerdir. Donanıma doğrudan bağlı fiziksel bir güç ölçer (wattmetre) kullanılmadığı için değerler tahminidir.


Yazılımsal Karbon Ayak İzinin Önemi

Sunucuda koşan her bir kod satırı, işlemci transistörlerinin anahtarlanmasına ve dolayısıyla elektrik enerjisi çekilmesine neden olur. Bu tüketim:

  • Veri merkezinin bağlı olduğu ulusal elektrik şebekesinden karşılanır.
  • Ulusal şebekeler ise büyük oranda fosil yakıtlı santrallerle beslenir.
  • Doğal Çıktı: Artan CO₂ emisyonları ve santralleri soğutmak için harcanan temiz su kaynakları.

Yani özetle; verimsiz algoritmalar = yüksek karbon ayak izi demektir.

Bu proje, çalıştırdığımız servislerin çevresel etkilerini gözler önüne sererek bilişim sektöründe “Yeşil Yazılım (Green Coding)” bilincini ve kültürünü yaygınlaştırmayı amaçlamaktadır.


Sistemi Daha Hassas Hale Getirmenin Yolları

Elde edilen verileri sadece varsayımsal bir güç modeline dayandırmak yerine, aşağıdaki ileri düzey yöntemlerle neredeyse %100 doğru ölçüm seviyelerine getirebilirsiniz:

🔌 Donanımsal Güç Tüketim Verilerinin Okunması

  • Linux çekirdeğindeki intel_rapl (Running Average Power Limit) sürücüsü okunarak doğrudan CPU’nun harcadığı fiziksel güç mikrosaniyeler seviyesinde saptanabilir.
  • Sistem araçları olan powerstat, turbostat veya perf komutları backend servislerine entegre edilebilir.

İşlemci TDP ve Mimari Kalibrasyonu

  • Sistemin çalıştığı CPU modelinin TDP (Thermal Design Power) değeri okunarak, işlemcinin boşta (idle) ve tam yükte (load) harcadığı güç sınırları kalibre edilebilir.
  • Böylece sunucu işlemcisinin mimari yapısına özel bir güç profili çıkarılmış olur.

Endüstriyel Dashboard Entegrasyonu

  • Elde edilen karbon emisyon ve su tüketim verileri Prometheus veritabanına aktarılarak zaman serili olarak saklanabilir.
  • Grafana üzerinde tasarlanacak endüstriyel panolarla, uzun vadeli emisyon trendleri ve sunucu sürdürülebilirlik raporları otomatik üretilebilir.

Adım Adım İzleme Paneli Kurulum Kılavuzu

1. Backend Servisinin (Python + Flask) Kurulumu

Backend servisinin temiz ve bağımsız çalışması için öncelikle sanal bir Python ortamı (virtual environment) oluşturmanızı tavsiye ederiz. Terminali açarak aşağıdaki adımları sırasıyla uygulayın:

cd ~/sistem-izleme-backend
python3 -m venv venv
source venv/bin/activate

Sanal ortam aktif edildikten sonra sistem analizi ve veri akışı için gerekli olan paketleri yükleyin:

pip install flask flask-cors psutil

Backend Yazılımının Başlatılması

Bulunduğunuz dizinde app.py isminde yeni bir dosya oluşturup aşağıda paylaştığımız Python kodlarını bu dosyaya kaydedin. Ardından terminal üzerinden servisi aktif edin:

source venv/bin/activate
python app.py

Bu işlemden sonra Flask API sunucunuz 5000 portu üzerinden HTTP isteklerini kabul etmeye ve Server-Sent Events veri akışı sağlamaya başlayacaktır.

2. Frontend Arayüzünün (React.js) Kurulumu

Arayüzün kurulumu için öncelikle sisteminizde Node.js ve npm yüklü olduğundan emin olun. Yeni bir terminal sekmesi açarak aşağıdaki adımları takip edin:

npx create-react-app sistem-izleme-frontend
cd sistem-izleme-frontend

React projesi oluşturulduktan sonra, src/App.js dosyasının içeriğini aşağıda paylaştığımız App.js kodları ile değiştirin ve kaydedin. CSS dosyasına da ilgili stilleri ekleyin. Son olarak arayüzü başlatın:

npm start

React uygulaması otomatik olarak yerel tarayıcınızda http://localhost:3000 adresinde açılacak ve sisteminizde koşan süreçlerin emisyon değerlerini canlı olarak listelemeye başlayacaktır.

Sistem İzleme Yazılım Kodları

app.py (Flask API Servisi)

App.js (React Web Uygulaması)

App.css (Arayüz Stil Sayfası)

Yorum yapma özelliği, forum tarafından gelen istek sebebiyle kapatılmıştır. Lütfen tartışmalar ve sorularınız için topluluk forumumuza katılın.