2012-12-07 1 views
21

내 inotify보기 제한이 1024로 설정되어 있습니다 (기본값이 128이라고 생각하십니까?). 그럼에도 불구하고, Yeoman, Guard 및 Dropbox는 끊임없이 실패하고 내 inotify 한도까지 알려줍니다. 그렇게하기 전에, 내 모든 시계를 소비하는 것이 무엇인지 알고 싶습니다 (Dropbox에 파일이 거의 없습니다).어떤 inotify 시계가 등록되었는지 어떻게 알 수 있습니까?

현재 어떤 시계가 등록되어 있는지 알아보기 위해/proc 또는/sys 또는 실행할 수있는 도구가 있습니까?

+0

기본값은 8192이며, 심지어 inotify로 중요한 작업을 수행하는 경우 숫자가 터무니없이 낮습니다. 가치를 희생해야하고, 아마도 상당히 많이해야합니다. 내 시스템에서 내가 사용하는 값은 131072에서 1048576 사이입니다 ... –

+0

또한보십시오 : https://unix.stackexchange.com/q/386877/143394 –

답변

4
  1. inotify 시계의 기본 최대 번호는 8192입니다 /proc/sys/fs/inotify/max_user_watches에 작성하여 증가시킬 수 있습니다.
    sysctl fs.inotify.max_user_watches을 사용하여 현재 값을 확인할 수 있습니다.

  2. tail -f을 사용하여 OS가 최대 시계 제한 inotify을 초과하는지 확인하십시오.
    tail -f 명령의 내부 구현은 inotify 메커니즘을 사용하여 파일 변경을 모니터링합니다.

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

  3. 알아하려면 inotify 시계가 등록 된 것을, 당신이 thisthis 참조 할 수 있습니다 : 당신이 당신의 inotify 시계가 부족했다면
    는 , 당신이 가장 가능성이 오류를 얻을 수 있습니다. 노력했지만 이상적인 결과를 얻지 못했습니다. :-(

은 참조 :
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

나는

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

사용이 될 것 같아 당신이 가지고있는 PID를의 목록을 얻을 것이다. inotify fd가 등록되었습니다.

나는 이것보다 더 많은 정보를 얻는 방법을 모른다. HTH

+0

만약 당신이 일하는 기계에있어, 이 폴더에 접근 할 수 없다. –

14

inotify를 파일 시스템 옵션

sysctl fs.inotify

lsof | grep inotify | wc -l

  • sysctl -n -w fs.inotify.max_user_watches=16384
  • 같은 값을 증가 파일을

    을 열어
  • sysctl -n -w fs.inotify.max_user_instances=512
1

다음 터미널 명령은 저의 우분투 16에서 완벽하게 작동했습니다.04 기계 :

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

내 문제는 내가 숭고한 텍스트에서 폴더로로드 내 HDD의 좋은 대다수가 있었다이었다. /opt/sublime_text/plugin_host 8992/opt/sublime_text/sublime_text 사이에 Sublime에는 18 개의 inotify 인스턴스가 있었지만 나머지 프로그램은 모두 1-3 사이에있었습니다.

나는 이오니아 모바일 앱 개발을하고 있었기 때문에 대형 Node.js 폴더 "node_modules"를 Sublime 설정의 무시 목록에 추가하여 인스턴스 수를 5 줄였다.

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

출처 :

I :이 이후 https://github.com/SublimeTextIssues/Core/issues/1195

0

내가 이상 유닉스/리눅스 StackExchange에 비슷한 질문에서 my answer 복사 - 붙여 넣기 부분이야, Google 결과에 높은 이 문제에 부딪 쳤으며이 대답 중 어느 것도 " 개가 현재 사용중인 프로세스가 얼마나 많이 있습니까?"라는 대답을주지 못합니다. 단 하나의 라이너는 모두 인스턴스이 얼마나 많은가를 보여줍니다. 이것은 스토리의 일부일뿐입니다. 그리고 트레이스 물건은 새로운 시계가 열리는 것을 보는 데 유용합니다.

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 
이 당신에게 개방 inotify 인스턴스의 목록과, PID가 그들을 양산 바이너리와 함께, 시계 카운트에 의해 내림차순으로 정렬 한 시계의 수있는 파일을 얻을 것이다

만약 당신이 그 엉망진창의 큰 공이 무엇인지, 왜 그랬는지에 관해서, 나는 the original answer에 대해 깊이있게 설명했다.