วิธีการตั้งค่าและทำความเข้าใจ fs.notify.max_user_watches


13

ฉันไม่เข้าใจวิธีที่ดีที่สุดที่จะตั้งด้วย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

ฉันรู้ว่า-wหมายถึงการเขียน แต่สิ่งที่ถูกเขียนและที่ไหน มันเป็นเพียงว่าคำสั่งนี้มีการเปลี่ยนแปลง/proc/.../max_user_watches?

วิธีใดในสองวิธีที่ระบุไว้ข้างต้นดีที่สุด ผมเข้าใจว่า 524288 และ 12288 เป็นตัวเลขที่แตกต่างกัน แต่ผมไม่เข้าใจความแตกต่างระหว่างผลของการทำงานที่และ-p-w

คำตอบ:


10

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ในระบบของคุณ) สำหรับรายละเอียด

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.