왜 rsync가 포크합니까? 그리고 왜 그런 갈래 프로세스가 거의 유휴 상태입니까 (iotop에서 볼 수 있듯이)? 있으며 동일한 문제가 발생합니다. 내 서버 중

이것은 여기에 언급 된 문제를 언급 하고 있으며 동일한 문제가 발생합니다.

내 서버 중 하나에서 rsync를 실행하여 거대한 디렉토리 (300Gb보다 큰 크기)를 동일한 컴퓨터에 마운트 된 다른 디스크에 백업했습니다. 재 동기화되는 디렉토리에는 수천 개의 디렉토리와 파일이 있습니다. ‘nohup’과 함께 단일 rsync 명령을 실행 한 다음 ‘&’명령을 사용하여 백그라운드에서 푸시했습니다. 퍼티를 사용하여 원격 bash 쉘에 제공된 전체 명령은 다음과 같습니다.

nohup rsync -avh /some/local/dir /backup/ >> /opt/rsync.dec22.log &

그런 다음 데이터가 복사되는 속도를 확인하기 위해 ‘iotop’명령을 사용했으며 동일한 매개 변수로 3 개의 rsync가 실행되고 있음을 알았습니다. 검색시 위의 링크가 정상임을 알 수 있습니다.

그러나 시스템에서만 실행되는 rsync 프로세스와 해당 프로세스 만 모니터링하기 위해 iotop을 수행하면 하나의 프로세스가 파일을 읽고 있지만 하나는 파일을 쓰고 있지만 하나는 유휴 상태입니다. 한 프로세스가 한 번에 하나의 작업 만 수행하는 것처럼 동작은 좋아 보이지만 세 번째 프로세스는 무엇입니까 (아래 이미지에서 중간 프로세스로 표시됨)?

내가 사용한 iotop 명령은 다음과 같습니다.

iotop -p22250 -p22251 -p22252

다음은 iotop 명령 출력의 스크린 샷입니다.

3 rsync 프로세스를 보여주는 iotop 명령 출력

나는 rsync를 많이 사용하는이 원인을 묻고 있으며 장기적인 이익을 위해 그 행동을 이해하고 싶습니다. 나는 심지어 매뉴얼을 읽었지만 포크는 아무 것도 말하지 않았다.



답변

rsync는 클라이언트 및 서버용으로 설계된 프로그램입니다. 서버가 읽고 클라이언트가 씁니다. 단일 컴퓨터 대신 네트워크를 통해 컴퓨터를 가지고 있다고 상상해보십시오. 그렇게 생각하면 훨씬 분명합니다.

그런 다음 컨트롤러가 있습니다. IO 작업에 어느 정도의 위험이 따르는 경향이 있으므로 IO 문제로 인해 전체 차단이나 충돌이 발생하지 않아야합니다. 따라서 각 연결마다 포크를 만들고 백그라운드에 앉아 있습니다.