fs.notify.max_user_watches를 설정하고 이해하는 방법

fs.notify.max_user_watches를 설정하고 이해하는 방법

fs.inotify.max_user_watches나는 이것을 설정하는 가장 좋은 방법을 이해하지 못합니다 sysctl. 사실 저는 특정 프로세스가 볼 수 있는 파일 수를 설정해야 한다는 사실 외에는 여기서 무슨 일이 일어나고 있는지 잘 이해하지 못합니다.

다음을 실행하면 최대 사용자 수를 볼 수 있다고 생각합니다.

cat /proc/sys/fs/inotify/max_user_watches

제가 이해한 바로는 일부 사람들은 편집기에서 열고 다음을 추가하여 변경을 제안하는 것 /proc/sys/fs/inotify/max_user_watches입니다 /etc/sysctl.conf.

fs.inotify.max_user_watches=524288

sudo sysctl -p그런 다음 파일에 대한 변경 사항을 처리하기 위해 실행됩니다 .

다른 사람들은 다음과 같은 명령을 실행할 것을 제안했습니다.

sudo sysctl -w fs.inotify.max_user_instances=1024
sudo sysctl -w fs.inotify.max_user_watches=12288

"write"라는 뜻인 건 알지만 -w, 무엇이 쓰여지고 어디에 있나요? 그냥 순서가 바뀐 걸까요 /proc/.../max_user_watches?

위의 두 가지 방법 중 어떤 방법이 가장 좋나요? 524288과 12288이 다른 숫자라는 것은 알지만 -p달리는 것과 달리는 효과의 차이가 무엇인지 이해가 되지 않습니다 -w.

답변1

sysctl -w아래의 적절한 키에 커널 매개변수 값을 씁니다 /proc/sys.

sudo sysctl -w fs.inotify.max_user_watches=12288

쓰세요. 12288​(/proc/sys/fs/inotify/max_user_watches 이것은 동등하지 않습니다. 단지 그렇습니다. 관심 있는 독자는 strace스스로 확인할 수 있습니다.)

sysctl -p

파일 /etc/sysctl.conf(기본값) 또는 에서 설정을 로드합니다 -p.

매개변수의 출처와 쓰여진 값이 다른 점 외에도, 두 방법의 차이점은 -w매개변수는 다음 재부팅 전까지만 변경되고, 저장된 값은 /etc/sysctl.conf시스템이 시작될 때마다 다시 적용된다는 점입니다. 나의 일반적인 접근 방식은 다음 을 사용하여 -w값을 테스트하는 것 입니다./etc/sysctl.conf/etc/sysctl.d/etc/sysctl.d/local.conf

보다sysctl그리고sysctl.conf자세한 내용은 매뉴얼 페이지( man sysctlman sysctl.conf시스템)를 참조하세요.

답변2

find /proc/*/fd -lname anon_inode:inotify |
   cut -d/ -f3 |
   xargs -I '{}' -- ps --no-headers -o '%p %U %c' -p '{}' |
   uniq -c |
   sort -nr

사용된 inotify 수를 확인하세요.

관련 정보