대부분의 경우 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는 지속적으로 버퍼의 작은 부분을 비우고 채워서 훨씬 더 많은 주기를 발생시키기 때문에 단순히 더 높아집니다. 100ms의 지연 시간이 빠르게 추가되어 버퍼를 통해 모든 데이터를 가져오는 데 몇 초가 걸릴 수 있습니다.
SSH는 명령 실행을 위해 설계되었으므로 이를 수행하기 위해 다른 방법을 사용하거나 정확히 무엇을 하고 있는지 다시 생각해 볼 수 있습니다. PHP를 원격으로 편집해야 하는 이유(요즘에는 말이 안 됨) 또는 파일을 보낼 수 있는데 복사하여 붙여넣는 이유가 무엇인지 모르겠습니다.