Używam sshfs do pracy zdalnej, ale jest to naprawdę powolne i denerwujące, szczególnie gdy używam na nim zaćmienia.
Czy istnieje szybszy sposób na lokalny montaż zdalnego systemu plików? Moim priorytetem nr 1 jest szybkość.
Zdalna maszyna to Fedora 15, lokalna to Ubuntu 10.10. W razie potrzeby mogę także używać systemu Windows XP lokalnie.
scp
było tak samo powolne jaksshfs
.Jeśli chcesz poprawić szybkość połączeń sshfs, wypróbuj następujące opcje:
polecenie byłoby:
źródło
defer_permissions
(nieznana opcja).nolocalcaches
zmniejszy wydajności przez wymuszanie wyszukiwania przy każdej operacji? Czy to jest sprzeczneauto_cache
?no_readahead
?Oprócz już zaproponowanych rozwiązań korzystania z Samby / NFS, które są całkowicie poprawne, można również osiągnąć pewne przyspieszenie przy
sshfs
użyciu szybszego szyfrowania (uwierzytelnianie byłoby tak bezpieczne, jak zwykle, ale same przesłane dane łatwiej byłoby odszyfrować) poprzez podanie-o Ciphers=arcfour
opcji dosshfs
. Jest to szczególnie przydatne, jeśli komputer ma słaby procesor.źródło
-oCipher=arcfour
nie zmieniło to moich testów z plikiem 141 MB utworzonym z losowych danych.Nie mam żadnych alternatyw, które mogę polecić, ale mogę podać sugestie dotyczące przyspieszenia sshfs:
Powinno to uniknąć niektórych żądań podróży w obie strony, gdy próbujesz odczytać zawartość lub uprawnienia do plików, które już pobrałeś wcześniej w sesji.
sshfs symuluje usuwanie i zmiany lokalnie, więc nowe zmiany wprowadzone na komputerze lokalnym powinny pojawić się natychmiast, pomimo dużych limitów czasu, ponieważ dane w pamięci podręcznej są automatycznie usuwane.
Jednak te opcje nie są zalecane, jeśli zdalne pliki mogą zostać zaktualizowane bez wiedzy komputera lokalnego, np. Przez innego użytkownika lub zdalną powłokę ssh. W takim przypadku preferowane byłyby niższe limity czasu.
Oto kilka innych opcji, z którymi eksperymentowałem, chociaż nie jestem pewien, czy któraś z nich zrobiła różnicę:
Powinieneś także sprawdzić opcje zalecane przez Meetai w jego odpowiedzi.
Rekurencja
Największym problemem w moim przepływie pracy jest próba odczytania wielu folderów, na przykład w głębokim drzewie, ponieważ sshfs wykonuje żądanie podróży w obie strony dla każdego folderu osobno. Może to być również wąskie gardło występujące w środowisku Eclipse.
Zgłaszanie próśb o wiele folderów równolegle mogłoby pomóc, ale większość aplikacji tego nie robi: zostały one zaprojektowane dla systemów plików o niskim opóźnieniu z buforowaniem z wyprzedzeniem odczytu, więc czekają na zakończenie statystyki jednego pliku przed przejściem do następnego .
Głoszenie
Ale coś, co sshfs mógłby zrobić, to spojrzeć w przyszłość na zdalny system plików, zebrać statystyki folderów, zanim ich zażądam, i wysłać je do mnie, gdy połączenie nie zostanie natychmiast zajęte. Zużyłoby to większą przepustowość (z danych nigdy wcześniej nieużywanych), ale mogłoby poprawić prędkość.
Możemy zmusić sshfs do wykonania buforowania z wyprzedzeniem odczytu, uruchamiając to przed rozpoczęciem zadania lub nawet w tle, gdy zadanie jest już w toku:
To powinno wstępnie buforować wszystkie wpisy katalogu, zmniejszając część późniejszych kosztów związanych z podróżami w obie strony. (Oczywiście musisz użyć dużych limitów czasu, takich jak te, które podałem wcześniej, w przeciwnym razie dane w pamięci podręcznej zostaną usunięte, zanim aplikacja uzyska do nich dostęp).
Ale to
find
zajmie dużo czasu. Podobnie jak inne aplikacje, czeka na wyniki z jednego folderu, zanim zażąda następnego.Może być możliwe skrócenie ogólnego czasu poprzez poproszenie wielu procesów wyszukiwania o przejrzenie różnych folderów. Nie testowałem, czy to naprawdę jest bardziej wydajne. Zależy, czy sshfs zezwala na równoległe żądania. (Myślę, że tak.)
Jeśli chcesz również wstępnie buforować zawartość pliku, możesz spróbować:
Oczywiście zajmie to znacznie więcej czasu, przeniesie dużo danych i wymaga dużej pamięci podręcznej. Ale kiedy to się skończy, dostęp do plików powinien być przyjemny i szybki.
źródło
SSHFS jest naprawdę wolny, ponieważ przenosi zawartość pliku, nawet jeśli nie musi (podczas wykonywania cp). Zgłosiłem to do Debiana, ale nie otrzymałem odpowiedzi: /
źródło
mv
. Niestety podczas uruchamianiacp
lokalnego FUSE widzi tylko żądania otwarcia plików do odczytu i zapisu. Nie wie, że tworzysz kopię pliku. Aby BEZPIECZNIK nie wygląda inaczej niż ogólny zapis pliku. Obawiam się, że nie da się tego naprawić, chyba że lokalcp
będzie bardziej przyjazny dla FUSE / FUSE. (Lub FUSE może wysyłać skróty bloków zamiast całych bloków, gdy podejrzewacp
, że tak jak rsync, ale byłoby to skomplikowane i mogłoby spowolnić inne operacje.)Po przeszukaniu i próbie. Właśnie odkryłem,
-o Compression=no
że szybkość jest bardzo duża. Opóźnienie może być spowodowane procesem kompresji i dekompresji. Poza tym użycie „Ciphers = aes128-ctr” wydaje się szybsze niż inne, podczas gdy niektóre posty przeprowadziły na tym temat pewne eksperymenty. Zatem moje polecenie jest jakoś tak:źródło
NFS powinien być szybszy. Jak zdalny jest system plików? Jeśli jest to w sieci WAN, lepiej byłoby po prostu zsynchronizować pliki tam iz powrotem, zamiast bezpośredniego dostępu zdalnego.
źródło
NFS lub Samba, jeśli masz duże pliki. Używanie NFS z czymś takim jak filmy 720p i bzdury to naprawdę PITA. Samba wykona lepszą robotę, chociaż nie lubię Samby z wielu innych powodów i zwykle nie polecałbym tego.
W przypadku małych plików NFS powinien działać poprawnie.
źródło
Odkryłem, że wyłączenie mojego motywu zsh, który sprawdzał status pliku git, pomogło wspaniale - samo wejście do katalogu zajęło ponad 10 minut. Podobnie wyłączenie sprawdzania statusu git w Vimie.
źródło
Zaloguj się jako root.
Uzyskaj dostęp do katalogu najwyższego poziomu, używając „cd /”.
Następnie upewnij się, że masz utworzony folder montowania lub utwórz go przy użyciu „mkdir nazwa_folderu”.
Następnie wystarczy użyć „mount xxxx: / remote_mount_directory / local_mount_directory.
jeśli wszystko działało po twojej stronie, wcześniej powinieneś mieć udane zamontowanie. Możesz sprawdzić i upewnić się, że katalog docelowy jest udostępniony za pomocą polecenia „exportfs”, aby zagwarantować, że można je znaleźć.
Mam nadzieję że to pomoże. To nie pochodzi ze środowiska lvie, zostało przetestowane w sieci LAN przy użyciu VMware i Fedory 16.
źródło