rsync가 여러 프로세스를 생성하는 이유는 무엇입니까?


21

다음 cron 문을 사용하여 한 컴퓨터에서 같은 컴퓨터의 다른 폴더로 백업합니다.

19 21 * * * root  rsync -ac --delete /source/folder /dest/folder

사용 pstree하면 cron이 세 가지 프로세스를 분기 한 것을 볼 수 있습니다.

 ├─cron───cron───rsync───rsync───rsync

ps

 9972 ?        Ds     1:00 rsync -ac --delete /source/folder /dest/folder
 9973 ?        S      0:29 rsync -ac --delete /source/folder /dest/folder
 9974 ?        S      0:09 rsync -ac --delete /source/folder /dest/folder

왜 세 가지 프로세스가 있습니까? 하나만 제한 할 수 있습니까?


왜 신경 쓰나요? 성능 문제가 있습니까?
EEAA

2
예, 서버 성능에 영향을 미치고 상당히 많은 리소스를 사용합니다
Ryan

답변:


24

http://rsync.samba.org/how-rsync-works.html

Rsync는 많은 파이프 라인입니다. 이것은 (대규모) 단방향으로 통신하는 일련의 프로세스임을 의미합니다. 파일 목록이 공유되면 파이프 라인은 다음과 같이 작동합니다.
generator → sender → receiver

생성기의 출력은 발신자에게 입력되고 발신자의 출력은 수신자에게 입력됩니다. 각 프로세스는 독립적으로 실행되며 파이프 라인이 중단되거나 디스크 I / O 또는 CPU 리소스를 기다리는 경우에만 지연됩니다.

로컬 rsync (소스 및 대상은 로컬 파일 시스템 임)를 실행 중이므로 세 프로세스가 모두 실행됩니다.
할 수있는 일은 없습니다. 이것은 의도적으로 설계된 것입니다.


8
프로세스 수 제한 할 없지만 사용되는 대역폭 제한 할 수 있습니다 . 나는 그의 기계가 rsync 읽기와 동일한 디스크 / 블록 장치에 쓰기로 인해 막혔다 고 가정합니다. 이 경우 '--bwlimit'옵션을 사용하면 도움이 될 수 있습니다.
JvO
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.