Salta al contenuto

Come posso risolvere i problemi e ottimizzare le prestazioni del mio server SFTP Transfer Family?

8 minuti di lettura
0

Il mio server SFTP (Secure File Transfer Protocol) AWS Transfer Family presenta trasferimenti di file lenti, latenza elevata e problemi di connettività intermittente verso il mio client SFTP. Desidero risolvere questi problemi e ottimizzare le prestazioni del mio server SFTP.

Risoluzione

Utilizza gli strumenti di diagnostica di rete per identificare i problemi di prestazioni del server SFTP

Utilizza la console Transfer Family per accedere all'endpoint del server SFTP Transfer Family. Se il server Transfer Family utilizza un endpoint VPC (Virtual Private Cloud), individua il nome DNS dell'endpoint VPC che corrisponde al server.

Per diagnosticare e risolvere i problemi di prestazioni della rete del server SFTP Transfer Family, utilizza uno o più dei seguenti metodi.

Utilizza tcpdump per acquisire e analizzare il traffico di rete

È consigliabile avviare l'acquisizione dei pacchetti sulle interfacce di rete prima di risolvere i problemi di prestazioni e latenza dei server SFTP Transfer Family.

Per catturare il traffico della porta TCP 22 e salvare l'output in un file pcap, esegui questo comando tcpdump:

sudo tcpdump -i eth0 port 22 -s0 -w sftpcapture.pcap

Nota: sostituisci eth0 con l'interfaccia che hai configurato nell'ambiente.

Nell'output del comando, controlla i timestamp tra i pacchetti per identificare ritardi o irregolarità.

Utilizza My Traceroute per diagnosticare la latenza di rete e la perdita di pacchetti

My Traceroute (MTR) monitora continuamente il percorso di rete tra client e server e fornisce dettagli sulla perdita e sulla latenza dei pacchetti.

Per i server SFTP Transfer Family, esegui il testo delle prestazioni MTR eseguendo questo comando mtr:

mtr -n -T -c 200 sftp-server-endpoint -P 22 --report

Nota: sostituisci sftp-server-endpoint con l'endpoint del server SFTP. Per modificare la porta, sostituisci 22 con la tua porta.

Esempio di output del comando mtr:

HOST: ip-10-0-1-100.ap-south-1    Loss%   Snt   Last   Avg  Best  Wrst StDev
  1.|-- ???                       100.0   200    0.0   0.0   0.0   0.0   0.0
  2.|-- ???                       100.0   200    0.0   0.0   0.0   0.0   0.0
  3.|-- ???                       100.0   200    0.0   0.0   0.0   0.0   0.0
  4.|-- ???                       100.0   200    0.0   0.0   0.0   0.0   0.0
  5.|-- 240.4.192.5                0.0%   200    0.3   0.5   0.2  51.1   3.7                     
  6.|-- 242.13.1.195               0.0%   200    1.4   2.8   0.5  46.2   6.2                                                              
  7.|-- 240.0.236.35               0.0%   200  185.4 343.3 183.8 1929. 442.9                                        
  8.|-- 242.13.126.1               0.0%   200  197.1 188.6 183.8 226.5   6.5                                      
  9.|-- 240.4.116.106              0.0%   200  186.1 186.1 183.9 191.0   1.5                                                             
 10.|-- 240.0.28.16               87.0%   200  189.0 186.8 184.1 189.2   1.4                     
 11.|-- 34.235.46.57               4.5%   200  189.1 185.7 183.8 189.2   1.2

Esamina l'output del test MTR per controllare prima l'hop di destinazione, quindi procedi a ritroso per identificare dove iniziano i problemi. Individua la perdita e la latenza dei pacchetti all'ultimo hop, quindi conferma che l'hop finale corrisponda alla destinazione prevista. Individua picchi improvvisi nelle colonne Avg e Wrst. I picchi improvvisi mostrano colli di bottiglia della rete o problemi di instradamento che richiedono ulteriori indagini da parte del client.

Utilizza traceroute per identificare i problemi di instradamento

Per collegare in rete il percorso tra un client e un server, esegui questo comando traceroute:

sudo traceroute -n -T -p 22 sftp-server-endpoint

Nota: sostituisci sftp-server-endpoint con l'endpoint del server SFTP. Sostituisci 22 con la tua porta.

Esempio di output del comando traceroute:

1 * * *
2 * * *
3 * * *
4 * * *
5 240.4.192.4 0.199 ms 0.190 ms 240.4.192.6 0.192 ms
6 242.13.0.199 1.328 ms 242.13.0.69 10.007 ms 242.13.0.193 1.093 ms
7 240.0.184.34 185.206 ms 240.0.236.34 184.032 ms 240.0.184.34 185.292 ms
8 242.2.212.33 186.242 ms 242.3.85.161 186.147 ms 242.2.213.33 186.095 ms
9 240.0.160.44 187.570 ms 240.0.160.47 189.964 ms 240.0.160.9 184.179 ms
10 241.0.11.214 188.132 ms 241.0.11.204 184.478 ms *
11 44.218.201.163 186.145 ms 185.897 ms 187.554 ms
12 * * *
13 44.218.201.163 188.708 ms 186.378 ms *
14 44.218.201.163 189.314 ms 191.099 ms 187.291 ms

Controlla nell'output gli aumenti di latenza tra gli hop per assicurarti che siano coerenti con le distanze di rete previste. Se riscontri indirizzi IP ripetuti o picchi di latenza eccessivi, la rete potrebbe presentare inefficienze di instradamento o congestione che influiscono sulle prestazioni.

Utilizza hping3 per testare la latenza TCP e la perdita di pacchetti

Il comando hping3 fornisce misurazioni end-to-end della perdita di pacchetti e della latenza delle connessioni TCP. Inoltre, il comando verifica se è possibile raggiungere la porta SFTP. Per ulteriori informazioni, consulta hping3 sul sito web Linux.

Per misurare la latenza e la perdita di pacchetti della connessione TCP per il server SFTP Transfer Family, esegui questo comandohping3:

sudo hping3 -S -c 5 sftp-server-endpoint -p 22

Nota: sostituisci sftp-server-endpoint con l'endpoint del server SFTP. Il comando precedente invia 5 pacchetti TCP Synchronize (SYN) alla porta 22 del server SFTP Transfer Family.

Esempio di output del comando hping3:

len=46 ip=44.208.155.179 ttl=242 DF id=0 sport=22 flags=SA seq=0 win=26883 rtt=191.9 ms
len=46 ip=44.208.155.179 ttl=239 DF id=0 sport=22 flags=SA seq=1 win=26883 rtt=187.8 ms
len=46 ip=44.208.155.179 ttl=242 DF id=0 sport=22 flags=SA seq=2 win=26883 rtt=187.8 ms
len=46 ip=44.208.155.179 ttl=242 DF id=0 sport=22 flags=SA seq=3 win=26883 rtt=187.8 ms
len=46 ip=44.208.155.179 ttl=242 DF id=0 sport=22 flags=SA seq=4 win=26883 rtt=187.7 ms

--- s-example123456789.server.transfer.region.amazonaws.com hping statistic ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 187.7/188.6/191.9 ms

Controlla nell'output la perdita di pacchetti, i tempi di andata e ritorno e i tempi di risposta irregolari. La congestione della rete o i firewall che bloccano il traffico potrebbero far perdere pacchetti o aumentare notevolmente la latenza.

Nota: regole di limitazione della frequenza o del firewall potrebbero influire sui risultati del comando hping3. Assicurati di essere autorizzato a utilizzare il comando hping3 su reti o sistemi che non possiedi o gestisci.

Migliora le prestazioni di trasferimento dei file per i server SFTP Transfer Family

Comprimi e raggruppa i file per trasferimenti di file più rapidi

Per massimizzare l'efficienza delle operazioni di trasferimento dei file, utilizza una combinazione di tecniche di compressione e raggruppamento. Inoltre, quando possibile, raggruppa più file in un unico archivio, ad esempio un file TAR o ZIP, per ottimizzare ulteriormente i trasferimenti.

Nota: nelle seguenti istruzioni, sostituisci large-file.csv e batch-files.tar con il nome e l'estensione del tuo file.

Per comprimere i file, esegui questo comando gzip:

gzip large-file.csv

Quindi esegui questo comando put per trasferire il file compresso sul server SFTP remoto:

sftp> put large-file.csv.gz

Per raggruppare diversi piccoli file di testo in un unico file TAR, esegui questo comando tar:

tar -czvf batch-files.tar.gz file1.txt file2.txt file3.txt

Nota: sostituisci file1.txt, file2.txt e file3.txt con i file che desideri raggruppare.

Quindi esegui questo comando put per trasferire il file:

sftp> put batch-files.tar.gz

Utilizza il multiplexing delle sessioni SFTP

Il multiplexing delle sessioni SFTP consente di trasferire più file per condividere una singola sessione SFTP. Transfer Family supporta fino a 10 sessioni SFTP multiplex concorrenti per connessione.

Per configurare la sessione in modo che utilizzi il multiplexing nei client SFTP basati su OpenSSH, esegui questo comando sftp:

sftp -o ControlMaster=auto -o ControlPath=/tmp/sftp-%h_%p_%r -i private-key-name sftpusername@serverID.server.transfer.region.amazonaws.com

Nota: sostituisci private-key-name con il nome della tua chiave privata e sftpusername con il tuo nome utente SFTP. Inoltre, sostituisci serverID con l'identificatore del server Transfer Family e region con la tua Regione AWS. Il parametro ControlMaster=auto avvia una connessione principale che le sessioni successive possono riutilizzare. L'argomento ControlPath=/tmp/sftp-%h_%p_%r specifica la posizione e il formato del nome del socket di controllo.

Per verificare lo stato del multiplexing della sessione, esegui questo comando ssh:

ssh -O check sftpusername@serverID.server.transfer.region.amazonaws.com

Nota: sostituisci sftpusername con il tuo nome utente SFTP, serverID con l'identificatore del server Transfer Family e region con la tua Regione AWS.

Se l'output contiene un ID di processo (PID), il multiplexing della sessione funziona correttamente.

Nota: per evitare problemi di connessione al server SFTP Transfer Family, assicurati che il nome della directory ControlPath sia composto da 108 caratteri o meno. Inoltre, assicurati di poter accedere alla directory ControlPath e che solo il proprietario abbia le autorizzazioni di scrittura.

Utilizza la compressione e l'ottimizzazione della concorrenza nei client SFTP per migliorare il throughput

Per massimizzare la larghezza di banda e le risorse disponibili, regola il numero di trasferimenti paralleli utilizzando l'ottimizzazione della concorrenza.

Per utilizzare la compressione e l'ottimizzazione della concorrenza, esegui questo comando sftp:

sftp -R 100 -C -i private-key sftpusername@sftp-server-endpoint

Nota: sostituisci sftusername con il tuo nome utente SFTP e sftp-server-endpoint con l'endpoint del tuo server SFTP. L'opzione -R 100 configura il client SFTP per consentire fino a 100 trasferimenti di file concorrenti. L'opzione -C attiva la compressione.

Se la rete ha una larghezza di banda ridotta, è consigliabile utilizzare la compressione. Per reti più veloci con larghezza di banda elevata, è consigliabile non utilizzare la compressione.

Informazioni correlate

Improve throughput for internet facing file transfers using AWS Global Accelerator and AWS Transfer Family services (Miglioramento del throughput effettivo per trasferimenti di file con connessione a Internet utilizzando i servizi AWS Global Accelerator e AWS Transfer Family)

Minimize network latency with your AWS Transfer for SFTP servers (Riduzione al minimo della latenza di rete dei server AWS Transfer per SFTP)

AWS UFFICIALEAggiornata 8 mesi fa