Niedawno skonfigurowałem udostępnianie plików Windows za pośrednictwem gigabitowej sieci Ethernet (nie używam dużych ramek) z serwerem Samba i klientem Windows Vista. Zrobiłem kilka kopii plików, ale maksymalna przepustowość, jaką widzę, to 20 MB / s (megabajty, nie megabity), co stanowi około 15% teoretycznego maksimum 125 MB / s dla sieci. Serwer ma macierz RAID, która może zarządzać około 75 MB / s (wąskim gardłem jest szyna PCI), a klient może zarządzać około 40 MB / s w kopii z dysku na dysk.
Powinienem dodać, że w tym czasie nie było innego ruchu w sieci.
Rozumiem, że nigdy nie uzyskam teoretycznego maksimum, ale nie sądziłem, że będzie tak źle.
Jaka jest typowa wydajność udostępniania plików Windows (SMB) w gigabitowej sieci Ethernet?
Punkty bonusowe: co mogę dostroić (oprócz używania dużych ramek), aby przyspieszyć?
źródło
Odpowiedzi:
Jakość kart sieciowych, przełączników i okablowania może mieć wpływ. Warto wyszukać recenzje kart sieciowych i przełączników, których używasz, aby sprawdzić, czy inne osoby zgłaszają je jako niezbyt skuteczne. Jestem przekonany, że karty sieciowe wbudowane w protezę są gorsze od transferów Gbit, choć z mojego doświadczenia nie wydaje się, aby miało to znaczącą różnicę w moim środowisku.
Jako punkt odniesienia, właśnie zainstalowałem nowe przełączniki Gbit w naszym biurze (zastępując stare przełączniki 100Mbit), a duże transfery SMB działają z prędkością blisko (ale mniej niż) 30 Mb / s pomiędzy każdą testowaną kombinacją maszyn. Właśnie przeprowadziłem szybki test z netcat między dwiema maszynami i uzyskałem podobne wyniki, więc nie sądzę, aby SMB było wąskim gardłem. Dwie maszyny, które właśnie przetestowałem, mają między sobą dwa przełączniki, które mogą mieć efekt, ale wydaje mi się, że ten efekt jest minimalny, biorąc pod uwagę, jak blisko dane do SMB przenoszą się do maszyny na tym samym przełączniku.
Najlepsza prędkość transferu, jaką widziałem w sieci Gbit, była nieco nieśmiała w najszybszym tempie 50 Mb / s. Miało to miejsce podczas przesyłania obrazu dysku z jednej maszyny do pliku na drugiej (w celu konwersji na dysk wirtualny VMWare. W takim przypadku obie maszyny zostały połączone za pomocą krótkiego kabla krzyżowego zamiast przełącznika. Zbiegiem okoliczności jedna z omawianych maszyn była jedną z maszyn, które właśnie przetestowałem i otrzymałem ~ 29 Mb / s od - najbardziej prawdopodobnym winowajcą głównego wąskiego gardła w moim przypadku jest prawdopodobnie 8-letnie okablowanie w budynku, które mogło zostać wykonane w tanim! Szybki (i równie nienaukowy) test w mojej małej sieci domowej pokazuje, że prędkości transferu przekraczają 35 MB / s kopiują plik z udziału Samby do pudełka Windows i 25 MB / s w innym kierunku (I '
Ramki Jumbo będą miały znaczenie dla masowych transferów, więc sugeruję, aby spróbować, jeśli cały zestaw obsługuje je poprawnie.
Krótko mówiąc: idąc za moim anegdotycznym doświadczeniem, twoje 20 Mb / s jest trochę wolne, ale nie tak masowo. Wszystkie moje instalacje systemu Windows i Samby są prawie całkowicie nieregulowane, więc podejrzewam, że twój sprzęt / okablowanie jest różnicą między tym, co widzę, a tym, co widzisz.
Edytować
Oczywiście po pięciu latach od tej odpowiedzi sprzęt i oprogramowanie uległy zmianie. Często widzę transfery 90+ MiB / s na maszynach z siecią Gbit, nawet z tanim zestawem. Mój domowy serwer multimediów / kopia zapasowa / inny serwer wydaje się być ograniczony do nieco ponad 60 dla masowych transferów, ale wydaje się, że samba jest związana z procesorem na jednym rdzeniu sprzętu urządzenia.
źródło
Ahh ... to tutaj ważne jest, aby pracownik serwera zrozumiał, co jest pod maską. Ponieważ ma to dwa lata, sądzę, że już go rozwiązał. Jednak dla potomności lub każdego z podobnym problemem prawdopodobnie natknął się na to
(Rozmiar okna TCP * 8 bitów / RTT w milisekundach) = Maksymalna przepustowość TCP w bps
Chociaż możesz mieć sieć Gigabit, pojedynczy przepływ TCP prawdopodobnie nie będzie w stanie osiągnąć tak wysokiego poziomu.
Oto prosta tabela przy założeniu, że masz domyślny rozmiar okna TCP 65535 bajtów w systemie Vista
RTT 10 ms => Przepustowość TCP = 52428000 bps = 52 Mb / s
RTT 20 ms => Przepustowość TCP = 26214000 bps = 26 Mb / s
RTT 50 ms => Przepustowość TCP = 10485600 bps = 10 Mb / s
RTT 100 ms => Przepustowość TCP = 5242800 bps = 5,2 Mb / s
RTT 150 ms => Przepustowość TCP = 3495200 bps = 4,3 Mbps
RTT 200 ms => Przepustowość TCP = 2621400 bps = 2,5 Mb / s
RTT 300 ms => Przepustowość TCP = 1747600 bps = 1,7 Mb / s
RTT 500 ms => Przepustowość TCP = 1048560 bps = 1 Mb / s
Przy prędkości 20 Mb / s lub 160 Mb / s opóźnienie w obie strony prawdopodobnie będzie rzędu 3 milisekund. Jedynym innym sposobem na przyspieszenie tego jest użycie optymalizatorów TCP, które usuwają duplikaty przez drut lub łączą fragmenty w większe pakiety. Przez sieć LAN, która prawdopodobnie nie przyniesie ci wiele zysków. Jeśli używasz sprzętu SoHo, takiego jak Linksys lub Netgear, prawdopodobnie opóźnienie jest spowodowane brakiem wspólnych buforów na przełączniku. Jeśli jest to większy przełącznik, taki jak port 24, upewnij się, że oba urządzenia są podłączone do tego samego układu ASIC. Pomoże to w opóźnieniu serializacji, ale niewiele. Gdybyś mógł obniżyć go do 2ms, dostałbyś doładowanie do około 31-32 Mb / s. Jeśli są na dwóch różnych przełącznikach, niewiele można zrobić bez nowego sprzętu.
źródło
Nie znaczy to, że pomaga ci to w tym przypadku, ale Vista / Windows 7 rozmawiający z Windows 2008 Server użyje SMB2, który jest znacznie bardziej wydajny niż zwykły SMB i wykorzysta znacznie więcej przepustowości sieci. Aby uzyskać więcej informacji, zobacz Ulepszenia wydajności serwera plików za pomocą protokołu SMB2 w systemie Windows Server 2008 i Zwiększona wydajność sieci w systemach Microsoft Windows Vista i Windows Server 2008 .
SMB2 pracuje nad Sambą 4, ale wygląda na to, że jest importowany do Samby 3.5 .
źródło