Tại sao rsync sinh ra nhiều quá trình cho tôi?


21

Tôi đang sử dụng câu lệnh cron sau để sao lưu từ thư mục này sang thư mục khác trong cùng một máy:

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

Khi tôi sử dụng pstree, tôi thấy cron rẽ nhánh ba quá trình

 ├─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

Tại sao có ba quá trình? Tôi có thể giới hạn chỉ một?


Bạn quan tâm làm gì? Là nó gây ra bất kỳ vấn đề hiệu suất?
EEAA

2
Có, ảnh hưởng đến hiệu suất máy chủ của tôi và họ sử dụng khá nhiều tài nguyên
Ryan

Câu trả lời:


24

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

Rsync rất nhiều đường ống. Điều này có nghĩa là nó là một tập hợp các quá trình giao tiếp theo một cách (phần lớn) một chiều. Khi danh sách tệp đã được chia sẻ, đường ống hoạt động như thế này: trình
tạo → người gửi → người nhận

Đầu ra của máy phát là đầu vào cho người gửi và đầu ra của người gửi là đầu vào cho người nhận. Mỗi quá trình chạy độc lập và chỉ bị trì hoãn khi các đường ống bị đình trệ hoặc khi chờ tài nguyên I / O của đĩa.

Bạn đang chạy một rsync cục bộ (nguồn và đích là hệ thống tệp cục bộ) vì vậy cả ba quy trình sẽ chạy ở đó.
Không có gì bạn có thể làm, đây là do thiết kế.


8
Bạn không thể giới hạn số lượng quy trình, nhưng bạn có thể giới hạn băng thông được sử dụng. Tôi giả sử rằng máy của anh ta bị tắc nghẽn do đọc và ghi rsync vào cùng một thiết bị đĩa / khối. Sử dụng tùy chọn '--bwlimit' có thể giúp ích trong trường hợp này.
JvO
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.