Ich habe sshfs verwendet, um aus der Ferne zu arbeiten, aber es ist sehr langsam und ärgerlich, besonders wenn ich Eclipse verwende.
Gibt es eine schnellere Möglichkeit, das Remote-Dateisystem lokal bereitzustellen? Meine oberste Priorität ist die Geschwindigkeit.
Remote-Rechner ist Fedora 15, lokaler Rechner ist Ubuntu 10.10. Bei Bedarf kann ich auch Windows XP lokal verwenden.
scp
genauso langsam war wiesshfs
.Wenn Sie die Geschwindigkeit für sshfs-Verbindungen verbessern müssen, probieren Sie diese Optionen aus:
Befehl wäre:
quelle
defer_permissions
(unbekannte Option).nolocalcaches
Verringern Sie nicht die Leistung, indem Sie bei jeder Operation Lookups erzwingen ? Widerspricht dasauto_cache
?no_readahead
?Neben den bereits vorgeschlagenen Lösungen für die Verwendung von Samba / NFS, die vollkommen gültig sind, könnten Sie auch einen gewissen Geschwindigkeitsschub erzielen,
sshfs
indem Sie eine schnellere Verschlüsselung verwenden (die Authentifizierung wäre genauso sicher wie gewöhnlich, die übertragenen Daten selbst wären jedoch einfacher zu entschlüsseln), indem Sie eine-o Ciphers=arcfour
Option angeben zusshfs
. Dies ist besonders nützlich, wenn Ihr Computer eine schwache CPU hat.quelle
-oCipher=arcfour
machte keinen Unterschied in meinen Tests mit einer 141 MB großen Datei, die aus zufälligen Daten erstellt wurde.Ich habe keine Alternativen zu empfehlen, kann aber Vorschläge zur Beschleunigung von sshfs machen:
Dies sollte einige Roundtrip-Anforderungen vermeiden, wenn Sie versuchen, Inhalte oder Berechtigungen für Dateien zu lesen, die Sie bereits zu einem früheren Zeitpunkt in Ihrer Sitzung abgerufen haben.
sshfs simuliert Löschvorgänge und Änderungen lokal, sodass neue Änderungen, die auf dem lokalen Computer vorgenommen wurden, trotz der großen Zeitüberschreitungen sofort angezeigt werden, da zwischengespeicherte Daten automatisch gelöscht werden.
Diese Optionen werden jedoch nicht empfohlen, wenn die Remote-Dateien möglicherweise aktualisiert werden, ohne dass der lokale Computer dies weiß, z. B. durch einen anderen Benutzer oder eine Remote-SSH-Shell. In diesem Fall sind geringere Timeouts vorzuziehen.
Hier sind einige weitere Optionen, mit denen ich experimentiert habe, obwohl ich nicht sicher bin, ob sie einen Unterschied gemacht haben:
Sie sollten auch die von Meetai in seiner Antwort empfohlenen Optionen prüfen .
Rekursion
Das größte Problem in meinem Workflow besteht darin, dass ich versuche, viele Ordner zu lesen, z. B. in einem tiefen Baum, da sshfs für jeden Ordner eine Roundtrip-Anforderung separat ausführt. Dies kann auch der Engpass sein, den Sie mit Eclipse haben.
Das parallele Anfordern mehrerer Ordner könnte hier Abhilfe schaffen, aber die meisten Apps tun dies nicht: Sie wurden für Dateisysteme mit geringer Latenz und Read-Ahead-Caching entwickelt. Daher warten sie, bis ein Dateistatus abgeschlossen ist, bevor sie mit dem nächsten fortfahren .
Vor-Zwischenspeicherung
Aber etwas sshfs könnte , wäre tun , um nach vorne schaut auf dem Remote - Dateisystem, Ordner Statistiken sammeln , bevor ich sie bitten, und sie mir zu schicken , wenn die Verbindung nicht sofort besetzt. Dies würde mehr Bandbreite verbrauchen (von Lookahead-Daten, die nie verwendet werden), könnte aber die Geschwindigkeit verbessern.
Wir können sshfs zwingen, ein Read-Ahead-Caching durchzuführen, indem wir dies ausführen, bevor Sie mit Ihrer Aufgabe beginnen, oder sogar im Hintergrund, wenn Ihre Aufgabe bereits ausgeführt wird:
Dadurch sollten alle Verzeichniseinträge vorab zwischengespeichert werden, wodurch der spätere Overhead durch Roundtrips verringert wird. (Natürlich müssen Sie die großen Zeitlimits verwenden, die ich zuvor angegeben habe. Andernfalls werden die zwischengespeicherten Daten gelöscht, bevor Ihre App darauf zugreift.)
Aber das
find
wird lange dauern. Wie bei anderen Apps wartet es auf die Ergebnisse aus einem Ordner, bevor es das nächste anfordert.Möglicherweise können Sie die Gesamtzeit verkürzen, indem Sie mehrere Suchvorgänge auffordern, verschiedene Ordner zu durchsuchen. Ich habe nicht getestet, ob dies wirklich effizienter ist. Es hängt davon ab, ob sshfs Anforderungen parallel zulässt. (Ich denke schon.)
Wenn Sie auch Dateiinhalte vorab zwischenspeichern möchten, können Sie Folgendes versuchen:
Offensichtlich dauert dies viel länger, überträgt eine Menge Daten und erfordert eine enorme Cache-Größe. Aber wenn es fertig ist, sollte sich der Zugriff auf die Dateien angenehm und schnell anfühlen.
quelle
SSHFS ist sehr langsam, da es den Dateiinhalt überträgt, auch wenn dies nicht erforderlich ist (bei Ausführung von cp). Ich habe dies Upstream und Debian gemeldet, aber keine Antwort: /
quelle
mv
. Wenn Siecp
lokal ausführen , werden in FUSE leider nur Anforderungen zum Öffnen von Dateien zum Lesen und Schreiben angezeigt. Es ist nicht bekannt, dass Sie eine Kopie einer Datei erstellen. Für FUSE unterscheidet es sich nicht von einem allgemeinen Dateischreibvorgang. Ich fürchte, dies kann nur behoben werden, wenn das lokalecp
System FUSE-fähiger / FUSE-freundlicher gemacht wird. (Oder FUSE ist möglicherweise in der Lage, Block-Hashes anstelle ganzer Blöcke zu senden, wenn der Verdacht auf a bestehtcp
, wie dies bei rsync der Fall ist.Nach der Suche und Prüfung. Ich habe gerade festgestellt, dass
-o Compression=no
es viel schneller geht. Die Verzögerung kann durch den Komprimierungs- und Dekomprimierungsprozess verursacht werden. Außerdem verwenden ‚Chiffren = aes128-ctr‘ scheint schneller als andere , während einige Post einige Experimente auf das getan hat. Dann ist mein Befehl irgendwie so:quelle
NFS sollte schneller sein. Wie fern ist das Dateisystem? Wenn es über das WAN geht, ist es möglicherweise besser, die Dateien nur hin und her zu synchronisieren, als den direkten Remotezugriff.
quelle
Entweder NFS oder Samba, wenn Sie große Dateien haben. Die Verwendung von NFS mit so etwas wie 720p-Filmen und Mist ist wirklich eine PITA. Samba wird einen besseren Job machen, obwohl ich Samba aus einer Reihe anderer Gründe nicht mag und ich es normalerweise nicht empfehlen würde.
Für kleine Dateien sollte NFS in Ordnung sein.
quelle
Ich fand, dass das Ausschalten meines zsh-Themas, bei dem der Status der Git-Datei überprüft wurde, enorm hilfreich war - das bloße Eingeben des Verzeichnisses dauerte mehr als 10 Minuten. Ebenso deaktivieren Sie Git Status Checker in Vim.
quelle
Melden Sie sich als root an.
Greifen Sie mit "cd /" auf Ihr oberstes Verzeichnis zu.
Stellen Sie dann sicher, dass Sie einen Mount-Ordner erstellt haben, oder erstellen Sie einen mit "mkdir folder_name".
Verwenden Sie danach einfach "mount xxxx: / remote_mount_directory / local_mount_directory".
Wenn alles geklappt hat, sollten Sie zuvor ein erfolgreiches Reittier haben. Sie können überprüfen und sicherstellen, dass das Zielverzeichnis freigegeben ist, indem Sie den Befehl "exportfs" verwenden, um sicherzustellen, dass sie gefunden werden.
Hoffe das hilft. Dies ist keine Lvie-Umgebung, sondern wurde in einem LAN mit VMware und Fedora 16 getestet.
quelle