2010-12-30 10 views
2

Ich arbeite an einem Embedded-Linux-System.Wie melde ich an, weniger Speicher zu verwenden?

Ich versuchte inotify zu verwenden, um Änderungen zu überwachen. Aber wenn ich versuchte, eine große Anzahl von Ordnern zu überwachen (sagen wir mehr als 6000 Ordner), verwendet inotify viel Speicher (ca. 25-30 MB). Wie Sie alle wissen, ist 25-30MB in Embedded-System als groß angesehen ...

Meine Fragen sind;

  • ist das normal?
  • kann jemand das tunen?
  • eine Alternative zur Überwachung einer großen Anzahl von Ordnern ohne Hinzufügen von Uhr in jedem Ordner?

Antwort

0

Blick in Auditd verwenden.

Es gibt auch ein User-Space-Dateisystem loggedfs genannt, aber ich konnte sie nicht an der Arbeit.

0

Es ist unvermeidlich, Verzeichnisse rekursiv zu überwachen, wenn inotify verwenden.
Referenz:
http://en.wikipedia.org/wiki/Inotify#Limitations

Um inotify(7) Leistung (reduzieren Speichernutzung, vielleicht) zu verbessern, ist mein Vorschlag:
Jedes Mal, wenn Sie gerade beginnen, ein Verzeichnis, konzentrieren sich nur auf Arten von inotify_event, die Sie interessieren (wie weniger wie möglich), können Sie das mask Argument der inotify_add_watch(2) Funktion anpassen, um dies zu erreichen. Einstellen des mask Argument Wert IN_ALL_EVENTS, um alle Arten zu überwachen, um inotify_event manchmal unnötig ist.

Hoffe, das hilft.

Verwandte Themen