Samba jest tak wolna! - logi

Robert Święcki jagger w ustronie.pw.edu.pl
Pią, 14 Mar 2003, 15:23:00 CET


Dnia pią 14. marzec 2003 14:30, Pepe napisał:

>> Jeżeli ktoś chce mieć szybsze transfery to TCP_NODELAY jest
>> niepotrzebne, wręcz niewskazane, bo to służy do całkiem innej rzeczy i
>> powoduje "zazwyczaj" spadek transferów.
>
> To ciekawe, w dokumentacji piszą coś przeciwnego (Speed.txt):
>
> The socket option TCP_NODELAY is the one that seems to make the
> biggest single difference for most networks. Many people report that
> adding "socket options = TCP_NODELAY" doubles the read performance of
> a Samba drive. The best explanation I have seen for this is that the
> Microsoft TCP/IP stack is slow in sending tcp ACKs.

A co wspólnego ma TCP_NODELAY z odpowiedziami ACK? 

       TCP_NODELAY
              If  set,  disable the Nagle algorithm.  This means that 
segments are always sent as soon as possible, even if  there  is  only  a
small  amount  of  data.   When  not set, data is buffered until
there is a sufficient amount to send out, thereby  avoiding  the
frequent  sending  of  small packets, which results in poor utilization of 
the network.

Być może jest jest to związane ze słabym protokołem samby, który wymaga 
częstych negocjacji w samej sesji (ftp ma ftp-data na innej sesji niż 
uzgadnianie połaczenie, listowanie katalogów) i potrzebuje częstych małych 
transferów i ich potwierdzania na poziomie protokołu SMB a nie samego TCP. 
Mimo wszystko praktyka wskazuje, że wyłaczanie algorytmu Nagle'a zmniejsza 
uzyskiwane transfery. Ale nawet wyłaczenie tego algorytmu nie pozwoli 
sotsowi TCP/IP wysłać więcej bez ACK niż obliczony algorytmicznie rozmiar 
okna danych, więc z tym ACK w Speed.txt to lekka nadinterpretacja 
(zakładam, że uzyskano jakieś wyniki z tą opcją i musiano to jakoś 
wytłumaczyć).

Jeżeli jednak naprawdę ta opcja poprawia wydajność przy odczycie to dałem 
d.. ciała (prosiłbym o jakieś wyniki testów, można do tego użyć np: 
http://home.elka.pw.edu.pl/~rswieck/getfile.tar.gz lub inneego copiera z 
opcją poazywania transferu). W moich testach wyszło, że w sambie 
TCP_NODELAY nie ma wpływu na szybkość odczytu.

-- 
	Pozdrowienia, Robert!

And we know deep down there's no other way
No trust, no reasoning, no more to say [IM]



Więcej informacji o liście dyskusyjnej pld-users-pl