Linux

리눅스 커널 inotify(7). inotify watch limit 늘리기.

Introduction

Visual Studio Code is unable to watch for file changes in this large workspace


VSCode, IntelliJ 계열 IDE 등을 사용했을때 큰 프로젝트들을 하다보면 inotify 관련된 에러창과 함께, 파일 수정을 트래킹하는 기능이 멈추거나 IDE에서 제공하는 자동 완성 기능들이 죽어버리는 경우가 있습니다. 혹은 드랍박스에서도 이런 에러를 발견할 수도 있습니다.

이와 같은 에러메세지를 볼 수가 있는데, 이 문제를 해결하는 방법을 포스팅합니다.


한줄의 명령어로 해결

$ echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p

위 명령어를 터미널에 입력하면 끝납니다.


What is inotify

inotify API 는 파일 시스템 이벤트를 모니터링하는 메카니즘을 제공합니다. 개별 파일들 또는 디렉토리들을 모니터링할 수 있습니다. 디렉토리를 모니터한다면, 디렉토리 자체와 그 안에 있는 파일들도 같이 모니터됩니다.

$ cat /proc/sys/fs/inotify/max_user_watches

/proc/sys/fs/inotify/max_user_watches 을 통해서 한 계정당 모니터되는 수의 상한을 걸 수 있습니다.

이 외에도 /proc/sys/fs/inotify/max_queued_events, /proc/sys/fs/inotify/max_user_instances 도 살펴볼 필요가 있습니다.


더 나아가서, 리눅스 man page의 inotify(7) 를 참고하시면 더 도움이 됩니다.


Reference