Belirli bir dizindeki disk G / Ç'sini nasıl izleyebilirim?


10

Tek bir dizindeki dosyalara yazdığı bilinen bir isimle birkaç işlemim var. Bir parametre değişikliğinin G / Ç miktarını önemli ölçüde azaltıp azaltmadığını test etmek için bir süre boyunca ( sadece dosya erişimi değil ) disk bloğu okuma ve yazma sayısını günlüğe kaydetmek istiyorum . Şu anda kullanıyorum iostat -d -p, ancak tüm bölümle sınırlı.



1
Bu, bu sorulardan farklıdır, çünkü dosyaların kendileriyle değil, I / O miktarıyla ilgileniyorum.
l0b0

Yanıtlar:


10

Bunun hem basit hem de saçma geleceğini anlıyorum, ancak söz konusu uygulamalar üzerinde kontrolünüz varsa (belki bir test ortamında) SADECE bu dizini kendi bir bölüme bağlayabilirsiniz, o iostatzaman sadece size söylerdi. ve o noktada başka hiçbir şey yok.

İlgili fiziksel sürücüler varsa, geri döngü bağlantısıyla taklit edebilirsiniz.

dd if=/dev/zero of=/bigdisk/LOOPFILE bs=1024m count=1024m # 1gb loopback file
mke2fs -j /bigdisk/LOOPFILE
mkdir /tmpcopy
mount -o loop /tmpcopy /bigdisk/LOOPFILE
cp -r -p $SPECIALDIR2MONITOR /tmpcopy
umount /tmpcopy
mount -o loop $SPECIALDIR2MONITOR  /bigdisk/LOOPFILE,

Bu, tüm rakip disk G / Ç'lerini tamamen kaldırmaz, ancak iostatçıktısının ihtiyacınıza daha spesifik olacağından eminim .


3

Doğrudan bir yol olduğunu sanmıyorum. İstediğiniz verileri almanın bir yolu, dizin ağacına erişimleri günlüğe kaydeden bir sanal dosya sistemi aracılığıyla erişmek olacaktır . Loggedfs böyle bir dosya sistemidir, ancak ilgilendiğiniz tüm verileri gösterip gösteremeyeceğini bilmiyorum.

mkdir /tmp/replica
loggedfs /path/to/directory /tmp/replica
mycommand --root=/tmp/replica
fusermount -u /tmp/replica

2

Sen kullanabilirsiniz inotifywait -m DIRNAMEgelen Inotify-araçları .


-dinotifywait 3.13'te mevcut değil. Bunu mu demek istediniz -m?
l0b0

@ l0b0: oh, git deposundan 3.14 kullanıyorum. afedersiniz. Ancak manpage -m, arka planda çalışma ve bir dosya gerektirme dışında bununla aynı olduğunu belirtiyor .
Tobias Kienzler

Ayrıca -ryararlı olabilir
Tobias Kienzler

1
Test etti. Yanlış anlama için özür dilerim, ancak hangi dosyalara (hatta kaç dosyaya) erişildiğiyle değil, G / Ç miktarıyla ilgileniyorum.
l0b0

2
Unutmayın, bu Linux'a özgüdür. BSD'lerin sistem çağrıları kqueue ve pnotify var, ancak yazarın ne istediğini tam olarak yapıp yapmadıklarını bilmiyorum.
Shawn J. Goff
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.