Đồng bộ hóa đa luồng giữa 2 máy chủ Linux


9

Hiện tại tôi đang chạy rsync cho 2,2 triệu tệp với tổng dung lượng 250 GB và chỉ mất 700 nghìn tệp trong 6 giờ.

Có ai biết một công cụ giống như rsync có thể làm điều này với nhiều luồng để nó đi nhanh hơn không?


3
Bạn có bất kỳ lý do nào để cho rằng nó bị ràng buộc CPU theo bất kỳ cách nào không?
Chopper3

Bạn đang sử dụng tùy chọn rsync nào?
Kyle Smith

Bạn đang sử dụng ssh như một phương tiện giao thông?
JimB

rsync -avSPp Và không có vấn đề về CPU cũng như Đĩa.
Tom van Ommen

Và không có giao thông SSH nào chỉ nhìn thấy một cái gì đó trên web không biết nó có nhanh hơn không. Nó đã mất nhiều năm để lập chỉ mục tất cả các tập tin.
Tom van Ommen

Câu trả lời:


7

Tôi nghi ngờ cpu là yếu tố hạn chế ở đây. Bạn rất có thể bị giới hạn bởi cả băng thông mạng cho việc truyền và IO đĩa; đặc biệt là độ trễ cho tất cả các cuộc gọi stat.

Bạn có thể chia hệ thống phân cấp hệ thống tập tin thành các phần nhỏ hơn để xử lý song song không?

Các tập tin nguồn là gì, và những gì viết hoặc sửa đổi chúng? Có thể gửi các thay đổi khi chúng xảy ra ở cấp ứng dụng không?


Đồng bộ hóa các tệp đính kèm Zarafa, tất cả được nén theo mặc định. tôi có thể chạy nhiều phiên bản nhưng điều đó kém hiệu quả hơn 10 luồng. Và mạng là 1GBit đến 1GBit nhưng các trung tâm dữ liệu khác nhau nhưng nó không phải là một vấn đề. có 24 đĩa SAS ở phía nguồn và lưu trữ thông minh với SSD ở đích.
Tom van Ommen

1
@Tom van Ommen - tại sao bạn nghĩ rằng bạn bị hạn chế CPU? Làm thế nào nhiều quá trình kém hiệu quả hơn các luồng nếu bạn thực sự bị hạn chế CPU?
JimB

1
@Tom van Ommen, 10 tiến trình có nhiều chi phí hơn 10 luồng; tuy nhiên, khóa cấu trúc dữ liệu giữa các luồng là một cơn ác mộng mã hóa. Nó thường hiệu quả hơn nhiều (đối với thời gian của người lập trình) khi chỉ sinh ra nhiều quy trình và được thực hiện với nó
Mike Pennington

1
@Guacamole - nhiều luồng có thể giúp ích trong một số trường hợp, nhưng nếu liên kết của anh ta bị bão hòa, anh ta sẽ không đẩy thêm nữa cho dù anh ta có bao nhiêu luồng. Rsync không sử dụng các luồng cho đồng thời và không chặn nội bộ trên IO.
JimB

1
@Guacamole - Tất cả những gì tôi chỉ ra là nếu anh ta sử dụng ssh làm phương tiện giao thông, thông lượng của anh ta bị giới hạn bởi chính ssh (cụ thể là cửa sổ nhận tĩnh, trừ khi anh ta sử dụng các bản vá ssh HPN).
JimB

1

Nếu hệ thống con đĩa của máy chủ nhận là một mảng có nhiều đĩa, chạy nhiều quy trình rsync có thể cải thiện hiệu suất. Tôi đang chạy 3 quy trình rsync để sao chép tệp vào máy chủ NFS (RAID6 với 6 đĩa cho mỗi nhóm đột kích) để bão hòa Gigabit Ethernet.

Anh chàng này báo cáo về một khai thác python cơ bản sinh ra nhiều quy trình rsync http://www.reliam.com/company/featured_geek


Thật không may, liên kết đã chết. Bạn có thể tìm thấy nó một lần nữa?
P.Péter

1

Tôi đã đọc nhiều câu hỏi tương tự như thế này. Tôi nghĩ rằng câu trả lời thực sự duy nhất là chia nhỏ bản sao / di chuyển thủ công. IOps sẽ là vấn đề ở đây. Nếu điều đó làm bạn cảm thấy tốt hơn, tôi đang trong quá trình di chuyển ~ 200 milllion tập tin tiêu thụ hơn 100TB dung lượng đĩa.


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.