为什么粘贴到 SSH 如此之慢?

为什么粘贴到 SSH 如此之慢?

大多数时候,每当我向 SSH 终端发布相当大的块内容时,它都会以每 20 秒 1000 个字符的速度抓取它;有时几乎停止。

“合理的大块”并不是一些大量的数据集,它通常少于 5000 个字符(php,ascii)脚本。

为什么是这样?

我发现目标服务器上的 bash 正在崩溃,占用了 100% 的 CPU。发生了什么?

编辑跟踪路由:

traceroute to ec2-23-24-25-26.compute-1.amazonaws.com (23.24.25.26), 64 hops max, 52 byte packets
 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

这通常是一个被填满的缓冲区。你可以将其与高速公路上的交通进行比较,如果行驶的汽车少于高速公路的设计数量,那么一切都会顺利进行。但是,如果行驶的汽车超过限制,高速公路上的交通就会变慢,因为高速公路无法处理。CPU 只会变得更高,因为它不断清空和填充缓冲区的一小部分,从而导致更多的周期。100 毫秒的延迟很快就会累积起来,使所有数据通过缓冲区需要几秒钟的时间。

SSH 是为执行命令而设计的,因此您可能想使用另一种方法来实现这一点,或者尝试重新思考您到底在做什么。我不明白为什么您应该远程编辑 PHP(这在当今毫无意义),或者为什么您要复制粘贴文件,而您本来可以直接发送它...

相关内容