2 개의 Linux 서버 간 다중 스레드 파일 동기화


9

현재 총 250GB의 220 만 파일에 대해 rsync를 실행 중이며 6 시간 만에 700K 파일이 걸립니다.

누구든지 여러 스레드 로이 작업을 수행 할 수있는 rsync와 같은 도구를 알고 있습니까?


3
어떤 식 으로든 CPU 바인딩이라고 가정 할 이유가 있습니까?
Chopper3

어떤 rsync 옵션을 사용하고 있습니까?
Kyle Smith

ssh를 전송 수단으로 사용하고 있습니까?
JimB

rsync -avSPp CPU 및 디스크 문제가 없습니다.
Tom van Ommen

그리고 SSH 전송은 웹에서 무언가가 더 빠르다는 것을 알지 못했습니다. 모든 파일을 인덱싱하는 데는 오랜 시간이 걸립니다.
Tom van Ommen 2016 년

답변:


7

CPU가 여기에 제한 요소가 아닌 것 같습니다. 전송을위한 네트워크 대역폭과 디스크 IO 모두에 의해 제한을받을 수 있습니다. 특히 모든 통계 호출에 대한 대기 시간.

파일 시스템 계층을 더 작은 청크로 분할하여 병렬로 처리 할 수 ​​있습니까?

소스 파일은 무엇이며 작성 또는 수정하는 것은 무엇입니까? 응용 프로그램 수준에서 발생하는 변경 사항을 보낼 수 있습니까?


기본적으로 Zarafa 첨부 파일 동기화 여러 인스턴스를 실행할 수는 있지만 10 스레드보다 효율적이지 않습니다. 그리고 네트워크는 1GBit에서 1GBit이지만 다른 데이터 센터이지만 문제는 아닙니다. 소스 측에 24 개의 SAS 디스크가 있고 대상에 SSD가있는 지능형 스토리지가 있습니다.
Tom van Ommen 2016 년

1
@ Tom van Ommen-왜 당신은 CPU가 제한적이라고 생각합니까? 실제로 CPU가 제한되어 있다면 여러 프로세스가 스레드보다 덜 효율적입니까?
JimB

1
@Tom van Ommen, 10 개의 프로세스에는 10 개의 스레드보다 많은 오버 헤드가 있습니다. 그러나 스레드간에 데이터 구조를 잠그는 것은 코딩의 악몽입니다. 여러 프로세스를 생성하고 처리하는 것이 훨씬 더 효율적입니다 (코더의 시간)
Mike Pennington

1
@Guacamole-여러 스레드가 일부 상황에서 도움이 될 수 있지만 링크가 포화 상태이면 스레드 수에 관계없이 더 이상 푸시하지 않습니다. Rsync는 동시성을 위해 스레드를 사용하며 IO에서 내부적으로 차단하지 않습니다.
JimB

1
@Guacamole-내가 지적한 것은 ssh를 전송으로 사용하는 경우 처리량이 ssh 자체 (특히 HPN ssh 패치를 사용하지 않는 한 정적 수신 창)에 의해 제한된다는 것입니다.
JimB 2016 년

1

수신 서버의 디스크 하위 시스템이 여러 디스크가있는 어레이 인 경우 여러 rsync 프로세스를 실행하면 성능이 향상 될 수 있습니다. 기가비트 이더넷을 포화시키기 위해 파일을 NFS 서버 (레이드 그룹당 6 개의 디스크가있는 RAID6)에 복사하기 위해 3 개의 rsync 프로세스를 실행하고 있습니다.

이 사람은 여러 rsync 프로세스를 생성하는 기본 파이썬 하네스에 대해보고합니다. http://www.reliam.com/company/featured_geek


불행히도, 링크는 죽었습니다. 다시 찾을 수 있습니까?
P.Peter

1

나는 이것과 비슷한 많은 질문을 읽었습니다. 유일한 대답은 수동으로 복사 / 이동을 분리하는 것입니다. 여기서 IOps가 문제가 될 것입니다. 기분이 나아지면 100TB 이상의 디스크 공간을 차지하는 ~ 200 백만 개의 파일을 이동하는 중입니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.