Cách đặt và hiểu fs.notify.max_user_watches


13

Tôi không hiểu cách tốt nhất để thiết lập fs.inotify.max_user_watchesvới sysctl. Trên thực tế, tôi không hiểu nhiều về những gì đang xảy ra ở đây ngoài thực tế là tôi cần đặt số lượng tệp có thể được xem bởi một quy trình cụ thể.

Tôi tin rằng tôi có thể thấy số lượng người dùng tối đa bằng cách chạy lệnh này:

cat /proc/sys/fs/inotify/max_user_watches

Tôi hiểu rằng một số người đề nghị thay đổi /proc/sys/fs/inotify/max_user_watchesbằng cách mở /etc/sysctl.conftrình soạn thảo và thêm phần này vào đó:

fs.inotify.max_user_watches=524288

Sau đó chạy sudo sysctl -pđến - có lẽ - xử lý các thay đổi được thực hiện cho tệp.

Những người khác đề nghị chạy các lệnh như thế này:

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

Tôi biết đó -wlà viết tắt của viết, nhưng những gì đang được viết và ở đâu? Có phải chỉ là lệnh này thay đổi /proc/.../max_user_watches?

Cách tiếp cận nào trong hai cách nêu trên là tốt nhất? Tôi hiểu rằng 524288 và 12288 là những con số khác nhau, nhưng tôi không hiểu sự khác biệt giữa hiệu quả của việc chạy -p-w.

Câu trả lời:


10

sysctl -wghi các giá trị tham số kernel vào các khóa tương ứng bên dưới /proc/sys:

sudo sysctl -w fs.inotify.max_user_watches=12288

viết 12288cho /proc/sys/fs/inotify/max_user_watches. (Nó không tương đương, chính xác là như vậy; độc giả quan tâm có thể stracetự mình xem.)

sysctl -p

tải các cài đặt từ một tệp, /etc/sysctl.conf(mặc định) hoặc bất kỳ tệp nào được chỉ định sau -p.

Sự khác biệt giữa cả hai cách tiếp cận, ngoài các nguồn khác nhau của các tham số và giá trị mà chúng viết, là -wchỉ thay đổi các tham số cho đến lần khởi động lại tiếp theo, trong khi các giá trị được lưu trữ /etc/sysctl.confsẽ được áp dụng lại mỗi khi hệ thống khởi động. Cách tiếp cận thông thường của tôi là sử dụng -wđể kiểm tra các giá trị, sau đó một khi tôi chắc chắn các cài đặt mới vẫn ổn, hãy ghi chúng vào /etc/sysctl.confhoặc một tệp bên dưới /etc/sysctl.d(thông thường /etc/sysctl.d/local.conf).

Xem các trang sysctlsysctl.confhướng dẫn sử dụng ( man sysctlman sysctl.conftrên hệ thống của bạn) để biết chi tiết.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.