2012-12-07 23 views
21

Ara veri set sınırımı 1024 olarak ayarlıyorum (varsayılan değer 128 mi?). Buna rağmen, yeoman, Muhafız ve Dropbox sürekli olarak başarısız oluyor ve bana limitim limiti bildiriyor. Bunu yapmadan önce, tüm saatlerimi neyin tüketdiğini bilmek istiyorum (Dropbox'ımda çok az dosyam var).Saatleri nelerin kaydedildiğini nasıl anlarım?

Şu anda hangi saatlerin kayıtlı olduğunu öğrenmek için/proc veya/sys veya çalıştırdığım bazı araçlar var mı?

+0

Varsayılan değer 8192'dir ve hatta inotify ile önemli bir şey yaparsanız bu çok düşük bir sayıdır. Değeri _raise_ ve muhtemelen oldukça fazla. Benim sistemlerimde, kullanıyorum değer 131072 ile 1048576 ... –

+0

arasındadır. Ayrıca bakınız: https://unix.stackexchange.com/q/386877/143394 –

cevap

4
  1. Varsayılan en yüksek inotify saat sayısı 8192'dir; /proc/sys/fs/inotify/max_user_watches'a yazılarak artırılabilir. Geçerli değeri kontrol etmek için sysctl fs.inotify.max_user_watches kullanabilirsiniz.

  2. İşletim sisteminizin inotify maksimum izleme sınırını aşıp aşmadığını doğrulamak için tail -f'u kullanın.
    tail -f komutunun iç uygulaması, dosya değişikliklerini izlemek için inotify mekanizmasını kullanır.

    tail: inotify cannot be used, reverting to polling: Too many open files

  3. öğrenmek için inotify saatler tescil edilmiştir şeyi, this ve this anlamlara gelebilir: Eğer inotify saatler bittiyse
    , büyük olasılıkla bu hatayı almaya edeceğiz. Denedim ama ideal sonucu almadım. :-(

Referans:
https://askubuntu.com/questions/154255/how-can-i-tell-if-i-am-out-of-inotify-watches
https://unix.stackexchange.com/questions/15509/whos-consuming-my-inotify-resources
https://bbs.archlinux.org/viewtopic.php?pid=1340049

3

Ben

sudo ls -l /proc/*/fd/* | grep notify 

kullanım olabileceğini düşünüyorum You have pid'ler bir listesini alırsınız. bir inotify fd kayıtlı

Bundan daha fazla bilgi edinmeyi bilmiyorum! HTH

+0

eğer bir iş makineniz varsa ve ' Bu klasörlere erişme –

14

Inotify dosya sistemi seçenekleri

sysctl fs.inotify

lsof | grep inotify | wc -l

bu

  • sysctl -n -w fs.inotify.max_user_watches=16384
  • gibi değerleri arttırın dosyaları

    açıldı
  • sysctl -n -w fs.inotify.max_user_instances=512
1

aşağıdaki terminal komutubenim Ubuntu 16 benim için mükemmel çalıştı.04 Makine:

for foo in /proc/*/fd/*; do readlink -f $foo; done |grep inotify |cut -d/ -f3 |xargs -I '{}' -- ps --no-headers -o '%p %U %a' -p '{}' |uniq -c |sort -n

Sorunum Sublime Text bir klasör olarak yüklenen benim HDD iyi bir çoğunluk vardı. /opt/sublime_text/plugin_host 8992 ve /opt/sublime_text/sublime_text arasında, Sublime programların geri kalanı 1-3 arasındayken 18 örnekte inotify vardı.

Iyonik Mobil Uygulama geliştirmeyi yaptığımdan beri, Submime ayarlarındaki yok sayma listesine büyük node.js klasörünü "node_modules" ekleyerek örnek sayısını 5'e düşürdüm.

"folder_exclude_patterns": [".svn", ".git", ".hg", "CVS", "node_modules"]

Kaynak:

I: Bu yana https://github.com/SublimeTextIssues/Core/issues/1195

0

Ben üzerinden Unix/Linux Stack Exchange benzer bir sorudan my answer ait aşağıya ekliyoruz parçası değilim, Google sonuçlarında yüksek Bu soruna rastladı ve bu cevapların hiçbiri size " saatinin saatinin şu anda kullanılmakta olan kaç işlem olduğunu" yanıtını vermez. Tek gömleklerin tümü, öykünün yalnızca bir parçası olan örneğinin örneğinin açık olmasını sağlar; bu, izleme öğelerinin yalnızca yeni saatler açıldığını görmek için kullanışlıdır.

sudo lsof | awk '/anon_inode/ { gsub(/[urw]$/,"",$4); print "/proc/"$2"/fdinfo/"$4; }' | while read fdi; do count=$(sudo grep -c inotify $fdi); exe=$(sudo readlink $(dirname $(dirname $fdi))/exe); echo -e $count"\t"$fdi"\t"$exe; done | sort -nr > watches 
: Bu, açık inotify örneklerinin bir listesi ve pid'ler ve onları olurken ikili birlikte izlemek sayımı ile azalan şekilde sıralanmış olan saatler ait numarası ile bir dosyayı alacak

Eğer büyük bir karmaşa topunun ne yaptığını ve neden karıştığını, the original answer numaralı telefondan derinlemesine açıkladım.

İlgili konular