Fix Lỗi The user limit on the total number of inotify watches was reached
Trong quá trình chạy ứng dụng chúng ta thường sử dụng các công cụ có chức năng tự động theo dõi sự thay đổi của các file trong source code và tự động restart web server hoặc build lại ứng dụng khi có sự thay đổi của file trong source code. Việc theo dõi thay đổi này được tiến hành thông qua ...
Trong quá trình chạy ứng dụng chúng ta thường sử dụng các công cụ có chức năng tự động theo dõi sự thay đổi của các file trong source code và tự động restart web server hoặc build lại ứng dụng khi có sự thay đổi của file trong source code.
Việc theo dõi thay đổi này được tiến hành thông qua sử dụng watcher của công cụ quản lý thay đổi của file hệ thống có tên là inotify trên Linux. Một số công cụ phổ biến có sử dụng watcher của inotify có thể kể đến như NPM hoặc docker-composer...
Trong trường hợp có quá nhiều thư mục cần được theo dõi thì có khả năng sẽ gây ra lỗi sau đây:
The user limit on the total number of inotify watches was reached
Nguyên Nhân Lỗi
Nguyên nhân của lỗi trên là bởi vì inotify giới hạn số lượng watcher sử dụng trên máy và khi đã sử dụng số lượng watcher tối đa cho phép thì việc yêu cầu sử dụng thêm watcher sẽ gây ra lỗi.
Để xem số lượng watcher giới hạn cho phép trên máy bạn chạy câu lệnh sau:
$ sysctl fs.inotify.max_user_watches
Hoặc:
$ cat /proc/sys/fs/inotify/max_user_watches
Khắc Phục Lỗi
Để khắc phục lỗi này bạn cần tăng số lượng watcher lên một số lớn hơn giới hạn đang có bằng cách chạy câu lệnh sau đây trên cửa sổ dòng lệnh:
$ sudo sysctl -n -w fs.inotify.max_user_watches=16384
Câu lệnh trên sẽ tăng số lượng watcher lên 16384 một cách tạm thời và số lượng watcher này sẽ trở về con số mặc định trước đó nếu bạn khởi động lại máy.
Để tăng số lượng watcher một cách cố định bạn chạy câu lệnh sau:
$ echo 16384 | sudo tee /proc/sys/fs/inotify/max_user_watches
Với câu lệnh trên số lượng watcher mới vẫn là 16384 ngay cả khi bạn khởi động lại máy.
Sau đó bạn có thể chạy lại công cụ có sử dụng watcher để kiểm tra lại.
Chúc bạn thành công!