En iyi ES tüketen dosyaları nasıl listeleyebilirim?


11

Belge yönetim yazılımım çok fazla G / Ç yapıyor ve en çok hangi dosyalara eriştiğini bilmek istiyorum.

Bana birkaç saniyede bir iotop gibi dosyalar için en iyi IO tüketen dosyaların listesini verecek bir Linux aracı var mı?

Bu şöyle görünebilir:

$ thetool
THRPUT   R/W/SWP FILE
40MB/s   write   /usr/alfresco/repo/1283421/1324928.doc
12MB/s   read    /usr/alfresco/cache/3928dh29f8if
11MB/s   read    /tmp/239398hf2f024f472.tmp

Ben adamı sayfalarında baktım iotop, lsof, straceve böyle bir özellik sunmak için görünmüyor.


Bu bilgiyi 'strace'den almak için bir post-işlemci yazabilirsiniz, ancak bildiğim kadarıyla böyle bir araç yoktur. (Böyle bir araç, 'mmap' aracılığıyla gerçekleşen işlemleri kaçırır.)
David Schwartz

Yanıtlar:


2

"Bayt sayısı" metriğinizin yanlış olduğunu düşünüyorum. İki erişimi düşünün. Biri bir dosyadan 10MB okur. Diğeri, ilk 10 MB için dosyanın her 512 baytını okur. "Bayt sayısı" ilk erişim için ikinciye göre 512 kat daha fazla olacaktır. Yine de her ikisi de G / Ç alt sistemine tam olarak aynı yükü koyacaktır.

"Bayt sayısı" kadar iyi veya kötü olan "işlem sayısını" kabul edebiliyorsanız, gerçekten ölçebileceğiniz bir şeyiniz vardır. inotifywatchProgram yapar ve dağıtımınızın olası parçası inotify-toolspakette.

Hangi dosyaların erişimin büyük bölümünü oluşturduğunu hemen size söyleyecektir ve gerçek sorununuzu çözmenize izin verecektir.


iotop bir metrik olarak MB / s kullanır, iotop yanlış mıdır? İnotifywatch öneriniz için +1, man sayfasındaki örnek TAM İhtiyacım olan şey ve sorumda tarif ettiğim şey. Çok teşekkürler!
Nicolas Raoul

Doğru, ancak 'iotop' dosyaları tanımlayamaz, yalnızca cihazları engeller. Bu nedenle, sorunlu işlemi ve / veya sorunlu dosya sistemini / cihazı tanımlamanıza yardımcı olabilir, ancak hangi dosyalara eriştiğini belirlemez. Parçaları farklı araçlardan bir araya getirmeniz gerekebilir.
David Schwartz

Hum, ilginç, teşekkürler! Şimdi inotifywatch ile oynuyorum ve neler yapabileceğimi kontrol edeceğim.
Nicolas Raoul

0

Her şeyden önce, açıklığa kavuşturmak için: "IO tüketen dosyalar" diye bir şey yoktur . Dosyalar pasif nesnelerdir. Öyle programlar tetik (tipik okuma / yazma dosyaları tarafından) IO ve onlar daha fazla veya daha az sıklıkta dosyalara erişebilir söyledi. Dolayısıyla, dosyalarla ilgili verdiğiniz verimin aslında pek bir anlamı olmazdı. Dosyalar ile ilgili yararlı bilgiler, dosyalara ne sıklıkla erişildiği ve değiştirilebileceği olabilir. Bu notifywait -m /some/file/or/directory( inotify araçlarından ) veya FAM veya Gamin gibi daha karmaşık bir sistem kullanılarak izlenebilir .


Bu "işlem hacmi" (başka bir kelime daha uygun olabilir, İngilizcem için üzgünüm) bir saniye boyunca belirli bir dosyadan / dosyaya okunan / yazılan bayt miktarı (bu sırada dosyaya erişen her işlem için toplam) ikinci). Umarım daha mantıklıdır. inotifywait, fam, gamin ne yazık ki sadece bana "Dosya X değiştirildi / okundu" ki bu ilginç ama aradığım şey değil.
Nicolas Raoul
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.