Kleine bestanden kruipen over VPN door roundtrips, niet door snelheid
Een map met piepkleine bestanden betaalt metadata- en roundtripkosten die een groot bestand verbergt. Meet de vorm van de werklast voordat je de bandbreedte van de tunnel de schuld geeft.
Kopieer één bestand van 2 GB over de VPN en de overdracht ziet er goed uit. Kopieer een map met tienduizend kleine documenten en dezelfde verbinding lijkt stuk. Het verschil is geen bandbreedte-instelling die tussen de twee taken veranderde. De tweede taak besteedt zijn tijd aan opzet, metadata en wachten op antwoorden, en het is de latentie van de tunnel die dat wachten zichtbaar maakt.
Eén bestand streamt; een map bestanden onderhandelt
Een grote kopie brengt het grootste deel van zijn leven door in een lees-schrijflus op een klein aantal open handles. De protocoloverhead wordt één keer per bestand betaald, en de gegevens bewegen in grote blokken. Bandbreedte domineert het resultaat.
Een mapkopie betaalt per bestand: aanmaken, attributen opvragen, openen, schrijven, sluiten en de metadata van de map bijwerken. Elk daarvan is een verzoek dat op een antwoord wacht voordat de volgende stap verder kan. De bytes zijn klein; de coördinatie niet.
Daarom bewijst een grafiek met laag linkgebruik bijna niets. De link is inactief omdat de client wacht, niet omdat de tunnel traag is. Een opslagarray of een endpointscanner kan dezelfde vorm van vertraging toevoegen. Identificeer welke fase wacht voordat je een netwerkinstelling wijzigt.
Roundtrips tellen sneller op dan bytes
Latentie is de prijs van één afhankelijke uitwisseling. Als een bestand meerdere seriële uitwisselingen nodig heeft en de tunnel aan elke kant 40 ms toevoegt, groeien de kosten per bestand snel. Tienduizend bestanden maken daar minuten van.
De rekensom is illustratief, geen meting: een bestand kost niet gegarandeerd één roundtrip, en clients overlappen een deel van het werk.
Twee hefbomen veranderen het totaal. Verminder het aantal afhankelijke uitwisselingen per bestand, of houd er meer tegelijk in gang. De eerste is een protocol- of werklastwijziging; de tweede is gelijktijdigheid. Geen van beide maakt een trage link sneller.
Meet de werklast, niet de link
Vergelijk drie taken met dezelfde eindpunten en hetzelfde toegangsbeleid: één groot bestand, de map met kleine bestanden en de werkelijke bedrijfsoperatie. Noteer bestandsaantal, grootteverdeling, kopieergereedschap en netwerkomstandigheden bij elk resultaat.
Een enkel MB/s-getal zonder die details is met dat van niemand anders te vergelijken.
Meet latentie apart van doorvoer. Een eenvoudige roundtriptest naar de bestandsserver geeft het getal dat zich over kleine bewerkingen vermenigvuldigt. Kijk daarna naar het verzoekpatroon van de kopie in plaats van de gemiddelde snelheid. Als de snelheid laag is en de link inactief, zit de flessenhals boven de tunnel.
Verander de taak: gelijktijdigheid en archieven
Voor een geautoriseerde bulkkopie houdt een hulpmiddel met gecontroleerde gelijktijdigheid meer verzoeken in gang. De /MT-optie van Robocopy is het gangbare Windows-voorbeeld. Het toevoegen van threads garandeert geen snellere kopie.
Kies een aantal dat de client, de server en de opslag aankunnen, en bewaar het taaklog en eventuele fouten.
Archiveren bij de bron en lokaal uitpakken verwijdert het externe werk per bestand. Neem voorbereidings- en extractietijd mee in de vergelijking, en bevestig dat het archief de metadata en machtigingen bewaart die de taak nodig heeft. Geen van beide trucs dwingt een toepassing haar eigen bestandsbewerkingen te bundelen.
Controleer de teller met een gecontroleerde test
Voer dezelfde taak twee keer uit met één variabele gewijzigd, en noteer beide getallen. Een gecontroleerde test is de enige manier om te weten of een instelling hielp of dat het netwerk toevallig rustiger was.
Twee opdrachten geven het bestandsaantal en de roundtrip-basislijn:
Get-ChildItem \\fileserver.hq.example\\share -Recurse | Measure-Object -Property Length -Sum
ping -n 20 fileserver.hq.example
Voer daarna de kopie uit met een beperkt aantal threads en vergelijk het log met de vorige uitvoering:
robocopy \\fileserver.hq.example\\share C:\\local /E /MT:16 /LOG:copy.log /TEE
Schakel SMB-ondertekening, versleuteling of endpointbeveiliging niet uit om de teller te verbeteren. Die wijzigingen ruilen een beveiligingseigenschap tegen een getal dat misschien niet de flessenhals was. En houd het VPN-transport in je notities gescheiden van het eigen transport van SMB, want een oplossing in het ene is geen bewijs over het andere.