![네트워크(RSH 및 SSH)를 통한 파이프라인의 성능을 최적화하는 방법](https://rvso.com/image/83714/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC(RSH%20%EB%B0%8F%20SSH)%EB%A5%BC%20%ED%86%B5%ED%95%9C%20%ED%8C%8C%EC%9D%B4%ED%94%84%EB%9D%BC%EC%9D%B8%EC%9D%98%20%EC%84%B1%EB%8A%A5%EC%9D%84%20%EC%B5%9C%EC%A0%81%ED%99%94%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
다음과 같이 원격 셸(RSH)이 있는 레거시 시스템에서 파이프라인 네트워크를 통한 데이터 전송을 고려해보세요.
rsh host -l user tar -cf - /home/dir \| compress | uncompress | tar -xvf -
그리고 이것은 '현대적인' 시스템에서:
ssh user@host tar -cf - /home/dir \| gzip | ungzip | tar -xvf -
성능 문제:
나는 RSH를 사용하여 AIX 4.3에서 AIX 5.3으로의 전송을 실행하면서 매우 나쁜 성능을 경험했습니다. 유휴 카드(10/100)를 유휴 스위치를 통해 연결했는데도 5.4GB를 전송하는 350Kbps 정도의 성능을 얻었습니다.
AIX 5.3과 Linux 간에 이 전송을 실행하지만 이제 SSH와 gzip을 사용하면 성능이 훨씬 향상되지만 네트워크 용량에는 도달하지 못합니다(1기가비트 LAN에서는 평균 약 400Mbps를 얻습니다).
파이프 버퍼나 네트워크 블록/버퍼를 사용자 정의하는 등 네트워크 파이프라인 성능을 최적화할 수 있는 방법이 있습니까?
답변1
적어도 SSH 부분에서는 대역폭이 제한되기보다는 CPU가 제한되고 있다고 생각합니다.
서버의 암호화/암호 해독이 제한 요소이기 때문에 두 개의 유휴 서버 사이에서 scp(ssh cp)를 사용하면 약 45-50MB/s를 얻습니다. gzip / ungzip을 추가하면 사용 가능한 코어 수에 따라 더 낮아질 수 있습니다.
압축되지 않은 전송과 암호화되지 않은 전송의 숫자가 더 좋습니다. 압축 명령 없이 시도해보고 어떻게 진행되는지 확인할 수 있습니다.
답변2
압축 및 디스크 I/O를 배제하기 위해 기본 속도 테스트를 수행했습니까?
이는 매우 쉽습니다. 영향을 받는 호스트 중 하나에서 ftp를 통해 다른 호스트로 연결하고
put "|dd if=/dev/zero bs=1M count=1000″ /dev/null
한쪽의 /dev/zero에서 1GB를 읽고 다른 쪽의 /dev/null에 쓰는 명령을 실행하면 순수 네트워크를 테스트합니다. 대역폭. 이에 대한 자세한 내용은 다음과 같습니다.
AIXChange 블로그: 네트워크 성능을 측정하는 두 가지 방법
scp를 통한 전송의 경우 덜 까다로운 스트림 암호(RC4)를 -o Cipher=arcfour ...
scp에 대한 옵션으로 사용하여 암호화를 줄일 수 있습니다.
또한보십시오관련된 질문압축을 활성화하기 위해 를 사용하는 것이 좋습니다 -C
. 귀하의 경우 CPU 성능이 제한 요소이지 네트워크 대역폭이 아니라는 것을 이해했기 때문에 압축이 상황을 더욱 악화시킬 수 있습니다.