Programlama

Disk I/O’ya Göre Sıralanmış Proses Listesi

Reklam

Bu Python scripti, sistemdeki her bir süreç için disk okuma ve yazma işlemlerini ölçer, ardından disk I/O kullanımına göre bu süreçleri sıralar.

📜 Kod:

import psutil
import time

# Başlangıç snapshot'ı
disk_stats_start = {}
for proc in psutil.process_iter(['pid', 'name']):
    try:
        io = proc.io_counters()
        disk_stats_start[proc.pid] = (io.read_bytes + io.write_bytes)
    except (psutil.NoSuchProcess, psutil.AccessDenied, AttributeError):
        continue

# Bir süre bekle ki fark ölçülebilsin
time.sleep(1)

# 1 saniye sonra tekrar disk I/O ölçülüyor
process_list = []
for proc in psutil.process_iter(['pid', 'name']):
    try:
        io = proc.io_counters()
        current_total = io.read_bytes + io.write_bytes
        previous_total = disk_stats_start.get(proc.pid, 0)
        delta = current_total - previous_total
        process_list.append({'pid': proc.pid, 'name': proc.info['name'], 'disk_usage': delta})
    except (psutil.NoSuchProcess, psutil.AccessDenied, AttributeError):
        continue

# Disk kullanımına göre sırala (azalan)
sorted_processes = sorted(process_list, key=lambda x: x['disk_usage'], reverse=True)

# Ekrana yazdır
print(f"{'PID':>6} {'Disk (Byte)':>12} {'Program Adı'}")
print("-" * 50)
for proc in sorted_processes:
    print(f"{proc['pid']:>6} {proc['disk_usage']:>12} {proc['name']}")

# Program açık kalsın
input("\nÇıkmak için Enter tuşuna bas...")

📋 Kullanım Talimatları:

  1. Gerekli Kütüphane: psutil modülünü yüklemek için aşağıdaki komutu kullanabilirsiniz: pip install psutil
  2. Scripti Çalıştırma:
    • Terminal veya komut istemcisinde scripti çalıştırın:
    python disk_siralamali_proses_listesi.py
    • Script çalıştığında, her bir süreç için disk okuma ve yazma işlemlerini ölçer ve disk kullanımına göre bu süreçleri sıralar.
  3. Sonuç:
    • Script, her bir prosesin PID’sini, disk I/O kullanımını (byte cinsinden) ve proses adını yazdıracaktır. Disk I/O en yüksek olan süreçler en üstte yer alır.

🖥️ Çıktı Örneği:

PID    Disk (Byte) Program Adı
--------------------------------------------------
12345    1048576     chrome.exe
23456     512000     python.exe
34567     256000     firefox.exe
45678     128000     explorer.exe
...

Çıkmak için Enter tuşuna bas...

🛠️ Açıklamalar:

  • io_counters(): Bu fonksiyon, bir sürecin okuma ve yazma byte’larını döndürür.
  • Bekleme Süresi: İlk ölçümün daha doğru olabilmesi için 1 saniye beklenir.
  • Sıralama: Disk I/O kullanımına göre süreçler sıralanır (en yüksek disk kullanımına sahip olan en üstte yer alır).
Reklam
Bu yazı faydalı oldu mu?
Yazar

Kutay Utku

Denediğim, kurduğum ve öğrendiğim teknolojileri sade bir dille anlatıyorum. Sorularını yorumlarda bekliyorum.

Tüm yazıları (655)

Yorumlar

Henüz yorum yapılmamış Düşüncelerini paylaşan ilk kişi sen ol.

Yorum yaz

E-posta adresin yayınlanmaz. Zorunlu alanlar * ile işaretlidir.

Kod paylaşırken <code> etiketini kullanabilirsin.0

Yorumun onaylandıktan sonra yayınlanır.