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

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).
13:17 tarihinde, Programlama kategorisinde yayınlanmış, RSS 2.0 ile takip edebilir, yorum bırakabilir.

Güncellenme Tarihi: 20 Nisan 2025 - 13:17

Görüşlerinizi Paylaşın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir