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 sysctl
및 man 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 수를 확인하세요.