Puncte:1

Wireguard lent, dar numai pentru încărcare pe Windows

drapel nl

Avem problema că conexiunea de la mai multe rețele client prin Wireguard Tunnel la o partajare Samba pe un server este lentă, dar în mod ciudat afectează doar Windows 10 și doar încărcările.

O gazdă Linux poate încărca cu până la 120 MB/s, în timp ce Windows poate încărca doar cu 10-50 MB/s (variază pentru diferitele rețele pe care le avem). Nu se limitează la smb, obțin exact aceleași rezultate de testare cu Iperf (udp și tcp).

De curiozitate am testat dacă Windows 11 este și afectat și este nu! Ce ar putea fi asta și cum îl pot repara?

Puncte:1
drapel in

Driverul experimental de kernel pe care l-au adăugat în versiunea 0.4.8 a rupt viteza de încărcare a Windows. Doar rulați o versiune mai veche până când o repară.

https://download.wireguard.com/windows-client/wireguard-amd64-0.4.7.msi

Paul avatar
drapel cn
Bun venit la Server Fault! Răspunsul dumneavoastră sugerează că o soluție viabilă la întrebare este disponibilă pe un alt site web. Familia de site-uri web de întrebări și răspunsuri Stack Exchange [în general se încruntă la acest tip de răspuns](https://meta.stackexchange.com/questions/8231/are-answers-that-just-contain-links-elsewhere-really-good-answers) ). Citiți [Cum scriu un răspuns bun?](http://serverfault.com/help/how-to-answer) și luați în considerare revizuirea răspunsului pentru a include pașii necesari pentru a rezolva problema. Și nu uitați să faceți [turul site-ului](http://serverfault.com/tour).
Puncte:1
drapel nl

Se pare că este aceeași sau cel puțin o problemă similară descrisă de Dropbox (https://dropbox.tech/infrastructure/boosting-dropbox-upload-speed). Din câte am înțeles (te rog să mă corectezi!) Când Linux Gateway folosește multi-queue NIC cu Wireguard, se întâmplă o mulțime de reordonări ale pachetelor și se pare că Windows 10 nu se poate descurca prea bine. Reordonarea pachetului determină cumva Windows 10 să încetinească viteza de trimitere, așteptând o confirmare după aproape fiecare pachet de date trimis, în loc să trimită mai multe pachete și să accepte ack-uri selective.

Din păcate, am uitat să fac capturi de ecran ale sesiunilor Wireshark pe care le-am analizat, dar a fost foarte bine vizibil că la descărcare, gazda Windows a primit de obicei în jur de 10-20 de pachete de date tcp înainte de a trimite un ack. Dar la încărcare am primit o confirmare TCP pentru fiecare pachet de date trimis.

Soluția pentru a remedia acest lucru este de a dezactiva multiqueuing pe gazda Linux.

ethtool -L PHYSICAL_LOCAL_INTERFACE combinat 1
ethtool -L PHYSICAL_NETWORK_INTERFACE combinat 1

Pentru a vedea dacă a fost aplicat se poate folosi

ethtool -l INTERFACENAME
Parametri de canal pentru INTERFACENAME:
Maxime prestabilite:
RX: 0
TX: 0
Altele: 1
Combinat: 63
Setări hardware curente:
RX: 0
TX: 0
Altele: 1
Combinat: 1

Ultima linie ar trebui să fie 1. Comanda de mai sus o setează doar temporar, pentru a o face persistentă, instrumentele specifice distribuției trebuie utilizate. Pentru Debian ar putea fi ceva de genul acesta:

cat /etc/network/interfaces
INTERFATA automata
iface INTERFACE inet static
    adresa IPADDR
    mască de rețea Mască de rețea
    gateway GATEWAY
    # Aceasta este linia relevantă
    post-up ethtool -L INTERFACE combinat 1

Acest lucru poate crea un blocaj dacă gateway-ul nu are un procesor puternic. Folosim procesoare AMD EPYC 7262 cu 8 nuclee și obținem până și descărcare completă de 1 Gbit cu utilizarea de ~70% a unui nucleu.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.