2 votes

Pourquoi le collage dans SSH est-il si lent et douloureux ?

La plupart du temps, chaque fois que je poste des morceaux assez volumineux dans un terminal SSH, cela avance à un rythme d'environ 1000 caractères toutes les 20 secondes; parfois s'arrêtant pratiquement.

Les "morceaux assez volumineux" ne sont pas un ensemble massif de données, c'est souvent moins de 5000 caractères (php, ascii) de script.

Pourquoi est-ce que ça se passe?

Je vois que bash sur le serveur cible est en train de dérailler, utilisant 100% du processeur. Qu'est-ce qui se passe?

Modifier Traceroute:

traceroute vers ec2-23-24-25-26.compute-1.amazonaws.com (23.24.25.26), 64 sauts max, 52 octets de données
 1  192.168.1.1 (192.168.1.1)  1.704 ms  1.040 ms  0.914 ms
 2  10.240.88.1 (10.240.88.1)  11.722 ms  12.449 ms  12.633 ms
 3  bmly-core-2b-ae4-1332.network.virginmedia.net (80.3.65.233)  10.545 ms  20.922 ms  10.216 ms
 4  brnt-bb-1b-ae6-0.network.virginmedia.net (213.105.159.229)  37.524 ms  13.632 ms  15.232 ms
 5  popl-bb-1a-as7-0.network.virginmedia.net (62.255.81.237)  11.881 ms  50.011 ms  12.091 ms
 6  popl-bb-1b-ae0-0.network.virginmedia.net (213.105.174.230)  15.561 ms  19.908 ms  39.367 ms
 7  tele-ic-5-ae0-0.network.virginmedia.net (213.105.159.117)  18.477 ms  42.429 ms  12.764 ms
 8  equinix01-iad2.amazon.com (206.223.115.68)  162.399 ms  96.645 ms  108.442 ms
 9  72.21.220.51 (72.21.220.51)  92.975 ms
    72.21.220.49 (72.21.220.49)  101.136 ms
    205.251.245.7 (205.251.245.7)  96.280 ms
10  72.21.222.149 (72.21.222.149)  97.333 ms
    72.21.222.141 (72.21.222.141)  104.084 ms  112.991 ms
11  216.182.224.214 (216.182.224.214)  98.459 ms
    216.182.224.207 (216.182.224.207)  105.273 ms
    216.182.224.55 (216.182.224.55)  108.202 ms
12  * * *

1 votes

Quel est le type de connexion vers l'hôte? Pouvez-vous faire un traceroute?

1 votes

Pourquoi collez-vous du PHP via SSH?

0 votes

Est-ce avec n'importe quel serveur ou juste un seul ?

2voto

Tamara Wijsman Points 56163

C'est généralement un tampon qui se remplit. Vous pouvez comparer cela à la circulation sur l'autoroute, s'il y a moins de voitures que prévu, tout va bien. Mais s'il y a plus de voitures que la limite, la circulation sur l'autoroute ralentit car elle ne peut pas gérer cela. Le processeur se charge simplement davantage car il vide et remplit constamment de petites parties du tampon, ce qui entraîne beaucoup plus de cycles. La latence de 100 ms peut rapidement s'accumuler pour finir par prendre plusieurs secondes pour que toutes les données passent à travers le tampon.

SSH est conçu pour exécuter des commandes, donc vous voudrez peut-être utiliser un autre moyen pour y parvenir ou essayer de repenser exactement ce que vous faites. Je ne vois pas pourquoi vous devriez modifier du PHP à distance (cela n'a pas de sens de nos jours) ou pourquoi vous copieriez-collez un fichier alors que vous pourriez simplement l'envoyer...

0 votes

Je peux comprendre qu'un ralentissement de ce type soit dû à divers petits tampons mal conçus, mais je ne peux pas croire qu'il puisse surcharger tellement le CPU. Il s'agit d'un serveur (EC2 small) capable de gérer des dizaines de milliers de messages par seconde via rabbitmq sans aucun effort. Si je colle de petits morceaux répétitivement, tout va bien, ce n'est que pour les morceaux plus gros que cela ralentit apparemment de façon factorielle. Je pense qu'autre chose est en cause, probablement l'alimentation des données du processus ssh vers le shell bash.

0 votes

@ Alec: Tout à fait possible, cela pourrait même être sur votre client. Nous ne savons pas quel tampon pourrait poser problème; bien que le processeur indiquerait qu'il se situe du côté serveur donc en effet, la seule autre possibilité est la connexion entre sshd et bash. De plus, je pense que votre 100% de CPU est plutôt un seul cœur saturé plutôt que l'ensemble du CPU; donc cela ralentit uniquement ce fil / cœur tout en étant capable de faire progresser massivement d'autres choses simultanément. C'est une bonne chose en ce qui concerne l'ordonnancement et les multiples cœurs, si vous avez un programme qui devient incontrôlable, il ne peut pas mettre hors service votre serveur...

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X