Verbesserung der SSHFS-Leistung bei Änderungen im Hostverzeichnis

12

Ich habe einen SSHFS-Mount von einem Ubuntu Server VM-Gast, der ein Host-Mac OS X-Verzeichnis bereitstellt. Änderungen, die direkt im Mac OS X-Hostverzeichnis vorgenommen werden, dauern ca. 5 bis 10 Sekunden, bis sie im Ubuntu Server VM-Gast-Mount berücksichtigt werden.

Ich benutze den folgenden Befehl ...

sshfs user @ host: ~ / host

Welche zusätzlichen Optionen (falls vorhanden) verbessern diese Latenz?

chattsm
quelle
1
Wie stellen Sie fest, dass es 5-10 Sekunden dauert?
Kyle
@Kyle, 5-10 Sekunden scheinen dem richtigen Wert ziemlich nahe zu kommen, da der Standard-Cache {stat, dir, link} 20 Sekunden beträgt.
Zoredache
1
@Kyle Ich führe einfach ein watch -n 1 'ls -l ~/host'auf dem Mount-Punkt aus und erstelle ein Verzeichnis oder eine Datei auf dem Host und sehe, wie lange es dauert, bis es angezeigt wird.
Chattsm

Antworten:

17

SSH ist nicht als Dateiübertragungsprotokoll konzipiert. SSHFS überprüft regelmäßig die Verzeichnisliste und die Caching-Ergebnisse.

Sie können das Caching-Verhalten steuern, jedoch auf Kosten der Leistung in Bezug auf die Interaktivität. Wenn auf den SSH-Host, den Sie verbinden, über eine Verbindung mit hoher Latenz oder eine langsame Verbindung zugegriffen wird, wird das Deaktivieren des Caching das Durchsuchen des Dateisystems schmerzhaft machen.

Wie auch immer, sehen Sie sich die Manpage an und experimentieren Sie ein bisschen.

Mann sshfs

   -o cache=YESNO
          enable caching {yes,no} (default: yes)

   -o cache_timeout=N
          sets timeout for caches in seconds (default: 20)

   -o cache_X_timeout=N
          sets timeout for {stat,dir,link} cache
Zoredache
quelle
Vielen Dank, ich hatte nicht genug Zeit damit verbracht, das Handbuch zu lesen, um diese Optionen zu sehen.
Chattsm
Irgendwelche Befehle, die einen sofortigen erneuten Scan erzwingen würden? Ich nehme an, ein Shell-Skript enthält R=".rescan.tmp$RANDOM" if [ ! a $R ]; then touch $R; rm $R; fivielleicht? Irgendein sauberer Weg?
Jeff Burdges
1

Überprüfen Sie, ob sich Ihr Host in Ihrem befindet /etc/hosts Datei befindet. Dadurch wurde der Overhead für mich behoben

Quelle: http://hints.macworld.com/article.php?story=20050329185832952

SebCorbin
quelle
1
Sollte das Betriebssystem nicht DNS-Ergebnisse zwischenspeichern? Was ist, wenn sich die IP ändert?
Ondra Žižka