Hangi işlemlerin sabit sürücüye yazdığını öğrenin


31

Lenovo T400 ve Ubuntu'mda, sabit sürücü yazma ışığı yanıp sönmeye devam ediyor. Linux'ta sabit diskte hangi işlemlerin G / Ç yapıldığını öğrenmek mümkün olup olmadığını merak ediyordum? Aynı şekilde top, çoğu işlemcinin ve belleğin hangi işlemlerin kullanıldığını öğrenebilirsiniz.

Yanıtlar:


41

İotop , istediğin şey için iyi bir araçtır. Ayrıca, herhangi birinin herhangi bir DISK READ, DISK WRITE, SWAPIN ve IO'da (genel yüzde) herhangi birinde biriken G / Ç miktarını göstermesine izin verir. Bu şık bir arayüz üzerinden:

  • Sadece klavyede bastığınızda a, en aç işlemleri en üstte sıralar.
  • Emri tersine çevirmek, sadece basın r.
  • Diğer sütunlara göre sıralamak istiyorsanız, sadece sol / sağ tuşa basın.

Gibi top, sunum oldukça meşgul. Başka bir şey de sahip olduğu sayısız seçeneğe sahip olmaması top(örneğin , ilgimi çeken herhangi bir sütunu gizlemeyi seçemem), ancak araç kendi amacı için yeterince iyi.


3
Powertop ayrıca bir dizüstü bilgisayarda pili ne kullandığını bulmakta da yararlıdır; iotop hala disk erişimlerini arayan ilk yer.
Gilles 'SO- kötülük yapmayı bırak'

kişi herhangi bir G / Ç yapmayan tüm görevleri filtrelemek için -o( --only) komutunu verebilir . Bu liste daha az kalabalık yapar
Marcin Orlowski

15

Kullanabilirsin lsof( man lsof ). Aşağıdakiler yazmaya açık olan tüm dosyaların bir listesini döndürür:

lsof | grep -e "[[:digit:]]\+w"

1
Hangi dosyalar açık ve hangi dosyalara erişildiği gerçekten iki farklı şeydir.
psusi,

@ psusi Yazma için açık bir dosya "erişilmiş" olabilir. Ayrıca, kendi sayfası aracılığıyla öğrenilerek daha fazla bilgi alınabilir.
James Sumners,

5
Yazmaya açık olan dosyalar bir noktada yazılabilir, ancak tam olarak şu anda gerekli olmayabilir. Birçok dosya açık tutulur, ancak nadiren yazılır. Diğer yandan, yazılmakta olan dosyalar hızlı bir şekilde açılıp kapatılabilir ve bu nedenle lsof'ta görünmez. Her iki durumda da, şu anda diske gerçekte hangi sürecin yazdığını bulmakta pek yardımcı olmaz.
psusi

wMarka Yukarıdaki komutundan yazmakta açık olan dosyalar için grep sadece . Yazma ve okumaya açık dosyalar ( u) gösterilmez, ancak bunlar da yazılabilir. Dosyaları yazmaya ve okutmaya + yazmaya açık görmek isterseniz, aradığınız şeyin bu olduğuna inanıyorum:lsof | grep -e "[[:digit:]]\+[wu]\{1\}"
Martijn

1
@Martijn Başka bir sütunla grep -e**w**eşleşmekten kaçınmak için kullanmak isteyeceksiniz[0-9]\+[wu]


2

Özellikle düşük disk aktivitesi için, kısa erişim hatlarının hızlı bir şekilde kaybolmasını önlemek için toplu modda iotop kullanmak gerekir. Cevap nasıl yazılır dosya sistemi Linux tarafından dosya adına göre okunur / yazar? bunun nasıl yapılacağını gösterir.

Şimdiye kadar iotopen iyi genel çözümdür. Aşağıdaki komut size diski kullanan tüm işlemlerin gerçek zamanlı çıktısını verir.

iotop -bktoqqq -d .5

where: -b     is batch mode
       -k     is kilobytes/s
       -t     adds timestamp
       -o     only show processes or threads actually doing I/O
       -qqq   removes output headers
       -d .5  updates every .5 seconds

İşlem kimliğine sahip olduğunuzda, ayrıca dosyaları da bulabilirsiniz.

 lsof -p $PID

1
Bu cevap yukarıdaki (çok eski) cevaplardan ne kadar farklıdır? Eski bir soruya cevap verirken cevabınızın önceki cevaplardan ne kadar farklı olduğunu açıklamak iyidir. Bu, okuyucunun cevaplar arasında sıralama yapmasına yardımcı olur.
Stephen Rauch

Bunu gösterdiğin için teşekkürler. Yorumunuzu dikkate alarak bu cevabı değiştirdim.
Frank Breitling
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.