Amélioration des performances SSHFS lors de la réflexion des modifications dans le répertoire hôte

12

J'ai un montage SSHFS à partir d'un invité VM de serveur Ubuntu, montant un répertoire hôte Mac OS X. Les modifications apportées directement dans le répertoire hôte de Mac OS X prennent environ 5 à 10 secondes pour se refléter dans le montage invité de la machine virtuelle Ubuntu Server.

J'utilise la commande suivante ...

sshfs user @ host: ~ / host

Quelles options supplémentaires (le cas échéant) amélioreront cette latence?

chattsm
la source
1
Comment déterminez-vous que cela prend 5 à 10 secondes?
Kyle
@Kyle, 5-10 secondes semble assez proche de la valeur correcte car le cache {stat, dir, link} par défaut est de 20 secondes.
Zoredache
1
@Kyle J'exécute simplement un watch -n 1 'ls -l ~/host'sur le point de montage et je crée un répertoire ou un fichier dans l'hôte et je vois le temps qu'il faut pour apparaître.
chattsm

Réponses:

17

SSH n'est pas conçu pour être un protocole de transfert de fichiers. SSHFS fonctionne en consultant périodiquement la liste des répertoires et les résultats de mise en cache.

Vous pouvez contrôler le comportement de mise en cache, mais au détriment des performances en ce qui concerne l'interactivité. Si l'hôte SSH auquel vous vous connectez est accessible via une liaison à latence élevée ou une connexion lente, la désactivation de la mise en cache rendra la navigation sur le système de fichiers difficile.

Quoi qu'il en soit, consultez la page de manuel et expérimentez un peu.

homme 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
la source
Merci, je n'avais pas passé assez de temps à lire le manuel pour voir ces options.
chattsm
Des commandes qui forceraient une nouvelle analyse immédiate? Je suppose qu'un script shell contenant R=".rescan.tmp$RANDOM" if [ ! a $R ]; then touch $R; rm $R; fipeut-être? Une façon plus propre?
Jeff Burdges
1

Vérifiez que votre hôte est dans votre /etc/hostsdossier, cela a résolu les frais généraux pour moi

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

SebCorbin
la source
1
Le système d'exploitation ne doit-il pas mettre en cache les résultats DNS? Et si l'IP change?
Ondra Žižka