Большую часть времени, когда я отправляю достаточно большие фрагменты данных в терминал SSH, он буквально проползает по ним со скоростью около 1000 символов каждые 20 секунд; иногда он практически останавливается.
«Достаточно большие фрагменты» — это не какой-то огромный набор данных, это часто скрипт длиной менее 5000 символов (php, ascii).
Почему это?
Я вижу, что bash на целевом сервере тормозит, используя 100% процессора. Что происходит?
РедактироватьТрассировка маршрута:
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
Обычно это заполняемый буфер. Можно сравнить это с движением по шоссе: если машин проезжает меньше, чем рассчитано шоссе, все идет нормально. Но если машин проезжает больше, чем установлено, движение по шоссе замедляется, потому что шоссе не может с ним справиться. ЦП просто загружается, потому что он постоянно опустошает и заполняет небольшие части буфера, что приводит к гораздо большему количеству циклов. Задержка в 100 мс может быстро вырасти до нескольких секунд, чтобы пропустить все данные через буфер.
SSH предназначен для выполнения команд, поэтому вы можете захотеть использовать другой способ сделать это или попытаться переосмыслить, что именно вы делаете. Я не понимаю, зачем вам удаленно редактировать PHP (это не имеет смысла в наши дни) или зачем вам копировать и вставлять файл, когда вы можете просто отправить его...