سؤال

وأنا أعمل على الخفي الذي يراقب الأحداث الملفات عبر inotify لتحريك أنواع مختلفة من الأحداث عندما يتم الوصول إلى الملفات. لقد قرأت أن الساعات باهظة الثمن قليلا، لأن النواة وتخزين اسم المسار الكامل من كل ملف للمراقبة.

كم عدد الساعات سيكون كثيرة جدا؟

وتحرير: في الغالب، وأنا أتساءل .. هل شاهدتم ضربة أداء ملحوظ، إذا كان الأمر كذلك، في كيفية العديد من الساعات حدث ذلك؟ نعم، لا بد لي من رصد / متكرر (ولكن في نظام ألبس الحذاء الحد الأدنى).

هل كانت مفيدة؟

المحلول

وAFAIK نواة ليست تخزين اسم المسار، ولكن inode. ومع ذلك، هناك 540 بايت لكل ووتش على نظام 32BIT و. مضاعفة كثيرا على 64BIT.

وأنا أعرف من Lsyncd (ربما ترغب في التحقق من ذلك؟) الناس الذين لديهم مليون الساعات. انها مجرد يأكل جيجابايت من الذاكرة.

نصائح أخرى

ويمكنك العثور على حدود النظام من خلال قراءة /proc/sys/fs/inotify/max_user_instances (الحد الأقصى لعدد "الأجسام" inotify) و/proc/sys/fs/inotify/max_user_watches (شاهد عدد ممكن من الملفات)، لذلك إذا كنت يتجاوز هذه الأرقام، وعدد كبير جدا ؛-) الحد الأقصى لعدد الساعات هو عادة عدة عشرات من الآلاف أو أعلى - على نظام بلدي، 262143 - الذي هو على الارجح أكثر مما كنت في حاجة من أي وقت مضى إلا إذا كنت تحاول مشاهدة كل ملف في نظام الملفات، ولكن لا يجب أن يفعل ذلك. وأود أن أقول، فقط حاول أن لا تستخدم الساعات أكثر inotify مما تحتاج إليه، ولا تقلق بشأن ذلك إلا إذا لاحظت وجود انخفاض ملحوظ في الأداء.

وبلدي من المعلومات:

[foo@caffeine ~]# cat /var/log/lsyncd.status | grep Inotify
Inotify watching 293208 directories

[foo@caffeine ~]# cat /proc/sys/fs/inotify/max_user_watches
1048576

وlsyncd يستخدم حوالي 130M من الذاكرة.

وأنا استخدم lsyncd للحفاظ على بعض الدلائل على وفاق مع خادم التعافي من الكوارث.

ولا أداء ضرب / عقوبة على الخادم الرئيسي.

100 مليارات تريليونات gazillions ستكون كثيرة جدا، ربما. نواة كورنر - مقدمة إلى inotify يذكر "آلاف الساعات" لذلك ينبغي على الأقل أن هذا العدد لا يمكن أن يكون المشكلة.

وهذا يعتمد على مقدار ذاكرة الوصول العشوائي كنت قد حصلت على

وعلى الرغم 524288 هو الحد الأقصى لعدد الملفات التي يمكن أن يشاهد، إذا كنت في بيئة بشكل خاص الذاكرة مقيدة، قد ترغب في خفض عدد. كل ساعة ملف يستغرق 540 بايت (32 بت) أو ~ 1KB (64 بت)، على افتراض بحيث يتم استهلاك جميع الساعات 524288 أن النتائج في الحد الأعلى لحوالي 256MB (32 بت) أو 512MB (64 بت) .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top