inotify-Limit dauerhaft erhöhen (für Syncthing)?

  • Hallo,

    ich habe SyncThing als App über das MyQNAP-Repository auf meinem TS-464 (mit 64GB RAM) installiert und am Laufen.
    Jetzt kommt dort seit einer Weile in der Oberfläche die Meldung, dass bestimmte Freigaben nicht mehr gescannt werden könnten und dass das "inotify"-Limit erhöht werden soll

    (mit Verweis auf SyncThing-FAQ).

    Die dort beschriebenen Befehle zur temporären Anpassung

    Code
    echo 524288 | tee /proc/sys/fs/inotify/max_user_watches

    kann ich ausführen - und scheinen auch zu funktionieren (zumindest verschwindet nach einem Neustart von SyncThing die Fehlermeldung).

    Aber halt leider nicht dauerhaft, sondern nur bis zum nächsten Neustart des QNAP.

    Wo/wie kann ich was eintragen, damit das dauerhaft bzw. bei einem Neustart gesetzt wird?

  • Was meinst Du mit "den oberen Befehl"?


    Dass der echo in die Pseudo-Datei unter "/proc" nur zur aktuellen Laufzeit wirkt und einen QNAP-Neustart nicht überlebt, ist mir schon klar - nur die in der o.a. FAQ angegebenen Wege (jn Datei /etc/sysctl.conf bzw. Datei unter /etc/sysctl.d/ anlegen) für die dauerhafte Speicherung gibt es bei QNAP nicht...

  • Code
    echo "fs.inotify.max_user_watches=204800" | sudo tee -a /etc/sysctl.conf

    Das musst Du für Dein NAS suchen. Keine Ahnung wo das ist. Nur diese Zeile macht das Ganze dauerhaft.

  • QTS hat keine /etc/sysctl.conf, deshalb geht dieser Weg nicht.

  • Sorry hab ich falsch ausgedrückt, Die Datei muss beim Contaner zu finden sein. Ob diese Datei beim QNAP Container auch sysctl.conf heißt, weiß ich nicht.

    Also bei meinem Syncthing wird das config Verzeichis als Share angelegt. Dort sollte die Datei zu finden sein. Aber: das Ganze ist nur für System sichtbar, admin hat hier keinen Zugriff. Daher kann ich auch nicht nachsehen.

  • Ich glaube, jetzt habe ich es kapiert - Du meinst mit "Container" das Syncthing qpkg-Paket, das auf ein Verzeichnis gemountet ist ;)

    Dort gibt es z.B. das Verzeichnis [/opt/SyncThing/etc/linux-sysctl/
    Dort gibt es eine Datei 30-syncthing.conf mit folgenden Einträgen:

    Code
    # Increase maximum socket buffer sizes to 7MiB for QUIC connections
    # see https://github.com/quic-go/quic-go/wiki/UDP-Buffer-Sizes
    net.core.rmem_max = 7340032
    net.core.wmem_max = 7340032

    ABER: lt. dem ebenfalls dort liegenden README.md sollte das nach /etc/sysctl.d/ kopiert werden - was es hier ja nicht gibt... :(

    (ein Aufruf von sysctl net.core.rmem_max ergibt leider nur 1638400 - also sind die Werte nicht gesetzt)


    Ich kann natürlich noch ein neues /etc/init.d/-Script erzeugen, das die Einstellungen in /proc von Hand vornimmt - aber irgendwie muss das doch bereits vorgesehen sein, oder nicht? :rolleyes:

    EDIT: oder ich ändere (mal wieder) das Shellscript des Pakets (SyncThing.sh in dem Fall) und packe die /proc-Anpassungen dort mit rein.
    Da muss ich nach jedem Paket-Update dran denken, das wieder zu restaurieren... :/

  • Also bisher hat noch nichts, was ich ausprobiert habe, funktioniert :( - die Meldung, dass das inotify-Limit erhöht werden muss, kommt in der syncthing-Oberfläche immer noch (oder besser: wieder)...

    ...kommt das bei Euch nicht? Oder verwendet hier niemand syncthing?