Scp débit très limité

Bonjour,

Depuis un moment maintenant, j’essaye de trouver ce qui bloque mes transferts SCP à 2.5 MB/s mais je ne trouve rien…

Je transfère des fichiers (souvent Iso) entre mon serveur (Linux Debian) et mon PC portable (Linux Ubuntu).

Les deux sont reliés par des câbles cat5e/cat6 à un switch Dlink Gigabit. Lorsque je tente un transfert, celui-ci débute à 4.2 MB/s, puis descend pour stagner à 2.6 MB/s maxi…
J’avais des partages NFS montés sur /root/, avec des clés, etc… j’ai tout enlevé actuellement, et du coup j’ai essayé SCP avec mot de passe, mais : je ne dépasse pas les 5.2 MB/s … 11 minutes 30 pour transférer 3,4 Go, ça me semble un peu long…

Test intéressant : IPERF et HDPARM
J’ai regardé le débit réseau avec Iperf, et voilà le résultat (je ne sais pas si cette commande donne le débit de transfert réseau réel).
[ 4] 0.0-10.0 sec 1.09 GBytes 937 Mbits/sec

Ensuite, Hdparm pour voir le temps d’accès de mes disques :
Sur le portable comme sur le serveur :

Portable : /dev/sda:
Timing buffered disk reads: 234 MB in 3.01 seconds = 77.63 MB/sec

Serveur : /dev/sda:
Timing buffered disk reads: 364 MB in 3.00 seconds = 121.23 MB/sec

Une autre piste, la carte réseau de mon PC fixe (serveur) sur laquelle il est connecté au switch, elle affiche une LED rouge. En investigant pas mal sur le net, c’est apparemment du Flow Control (contrôle de flux réseaux). Je n’ai pas trouvé comment l’enlever, ni sur mon switch, ni sous Linux…

Bref, si par hasard vous aviez une petite idée… Je ne pense bien sûr pas atteindre du 50-60 Mo/s, mais 12-15 Mo/s me paraitraient plus corrects, non ?

Merci !

tu as essayé de transférer avec ton gestionnaire de fichiers?dolphin?pcmanfm?nautilus?

Euh, non à vrai dire pour moi cela ne pouvait pas être différent, mais je vais voir ça.

Tu veux dire donc depuis le portable, depuis Nautilus, Fichier > Transférer sur un serveur ?

Merci.

scp n’est pas fait pour la vitesse, en particulier en fait de la compression, cryptographie, et de la non-optimisation du code (qui n’est pas pensé pour cela)

@marcastro : En fait, je n’ai pas réussi à me connecter en partant de mon Nautilus… Je fais Fichier > Se connecter à un serveur, mais pas de SFTP / SCP dans la liste, y’a juste SSH mais il ne fonctionne pas…

@haleth : Hum, possible mais il me semblait que le débit n’était pas aussi faible quand même… Peut-être que je me trompe, je vais faire d’autres tests. En tout cas, avec la commande RSYNC, le comportement est le même (bon normal tu vas me dire, c’est SSH qui est utilisé.)

pour nautilus il faut “saisir l’emplacement” et en haut dans la barre d’adresse tu écris

sftp://login@<ip_réseau_de_ton_serveur_ssh>:<port_ssh>

Merci. Malheureusement, non rien à faire, il ne veut point :
Impossible d’afficher « sftp://user@server:22/ ».
Erreur : SSH program unexpectedly exited
Sélectionnez un autre visionneur et essayez à nouveau.

J’ai tenté avec Filezilla, mais impossible j’ai des erreurs aussi… Je verrais ce soir.

vérifier la config etc/sshd_config et la redirection du port ssh?

Ca y est, comme j’avais tuné un peu le sshd_config, là j’ai du rajouter la directive ForceCommand internal-sftp pour pouvoir m’y connecter (Filezilla ou bien Nautilus fonctionnent maintenant).

Malheureusement par Nautilus, je ne dépasse toujours pas les 2.6 Mo/s…

A mon centre de formation aujourd’hui, un WinSCP vers une VM Linux faisait du 9 Mo/s environ. Donc je me dis quand même que ça doit être possible…

Je vais essayer de refaire un serveur SSH avec une conf par défaut, pour voir. (bien que je n’ai pas changé beaucoup de choses dans le sshd_config… ).

As tu regardé le taux CPU sur les 2 machines ?

Salut,

1 - [quote] -v Verbose mode. Causes scp and ssh(1) to print debugging messages about their progress.
This is helpful in debugging connection, authentication, and configuration problems.[/quote]
afin de voir si pas de limitation par défaut

2 - [quote]-l (L minuscule)[/quote] pour imposer une limite acceptable

@piratebab : Pas de surcharge à priori, côté serveur le load average est à 0.40 avec 3 VM allumées et j’ai 8 coeurs, côté portable, je suis à 0.75 mais j’ai 4 coeurs.

@ggoodluck47 : Merci des options, pas pensé au -v. Ceci dit, rien de bien parlant, je ne vois pas de limitation.

Executing: program /usr/bin/ssh host 192.168.X.X, user, command scp -v -p -t /tmp/ OpenSSH_6.1p1 Debian-4, OpenSSL 1.0.1c 10 May 2012 debug1: Reading configuration data /etc/ssh/ssh_config debug1: /etc/ssh/ssh_config line 16: Applying options for * debug1: Connecting to 192.168.X.X [192.168.X.X] port PORT. debug1: Connection established. debug1: identity file /home/user/.ssh/id_rsa type -1 debug1: identity file /home/user/.ssh/id_rsa-cert type -1 debug1: identity file /home/user/.ssh/id_dsa type -1 debug1: identity file /home/user/.ssh/id_dsa-cert type -1 debug1: identity file /home/user/.ssh/id_ecdsa type -1 debug1: identity file /home/user/.ssh/id_ecdsa-cert type -1 debug1: Remote protocol version 2.0, remote software version OpenSSH_5.9p1 Debian-5ubuntu1.4 debug1: match: OpenSSH_5.9p1 Debian-5ubuntu1.4 pat OpenSSH_5* debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_6.1p1 Debian-4 debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEXINIT received debug1: kex: server->client aes128-ctr hmac-md5 none debug1: kex: client->server aes128-ctr hmac-md5 none debug1: sending SSH2_MSG_KEX_ECDH_INIT debug1: expecting SSH2_MSG_KEX_ECDH_REPLY debug1: Server host key: ECDSA 58:88:d9:6d:c7:12:83:af:68:dc:8c debug1: Host '192.168.X.X' is known and matches the ECDSA host key. debug1: Found key in /home/user/.ssh/known_hosts:1 debug1: ssh_ecdsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: Roaming not allowed by server debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received debug1: Authentications that can continue: publickey,password debug1: Next authentication method: publickey debug1: Trying private key: /home/user/.ssh/id_rsa debug1: Trying private key: /home/user/.ssh/id_dsa debug1: Trying private key: /home/user/.ssh/id_ecdsa debug1: Next authentication method: password user@192.168.X.X's password: debug1: Authentication succeeded (password). Authenticated to 192.168.X.X ([192.168.X.X]:PORT). debug1: channel 0: new [client-session] debug1: Requesting no-more-sessions@openssh.com debug1: Entering interactive session. debug1: Sending environment. debug1: Sending env LANG = fr_FR.UTF-8 debug1: Sending command: scp -v -p -t /tmp/ File mtime 1399641837 atime 1399642721 Sending file timestamps: T1399641837 0 1399642721 0 Sink: T1399641837 0 1399642721 0 Sending file modes: C0777 2753361920 FreeBSD-8.4-RELEASE-amd64-dvd1.iso

J’ai ensuite fait d’autres tests :
Installer une nouvelle VM sur le serveur (c’est un serveur KVM), installer SSH et transférer un fichier depuis le portable. Le débit reste bas pendant 20 secondes, puis monte progressivement pour atteindre parfois jusqu’à 24 Mo/s ! Sur un iso de 2.8 Go, je suis descendu à 3 minutes 40, ce qui est acceptable.

Le test suivant, j’ai coupé toutes les VMs du serveur (pour être sûr que rien n’interfere), et j’ai relancé…
Parfois, je monte à 5 Mo/s, puis, comme si un process réseau venait perturber, je retombe vite à 2.7 Mo/s,
Enfin en tout cas jamais plus de 5, donc je pense avoir un petit souci juste sur ce serveur-là.

Peut-être le bridge Linux KVM (qui possède une IP) qui limite le transfert … ?
Mais dans ce cas, il devrait limiter même au niveau de la VM…

Sinon, dernier test à faire, me reconnecter en direct sur la carte réseau du serveur sans passer par le switch (il a une conf par défaut.)