Rsync đẹp trên máy từ xa


25

Khi sử dụng rsync + ssh để truy cập vào một máy từ xa, có cách nào để "làm đẹp" quá trình rsync trên máy từ xa (để giảm mức độ ưu tiên của nó) không?

Chỉnh sửa câu hỏi để làm rõ:

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
backups  16651 86.2  0.1   3576  1636 ?        Rs   11:06   0:06 rsync --ser...

(dòng rsync bị cắt)

Đây là một công việc định kỳ sao lưu thường chạy vào lúc 4 giờ sáng, nhưng khi tôi tỉnh táo (và cam kết, hoặc sử dụng Bugzilla được lưu trữ trên cùng một máy đó), nó sẽ giết chết hiệu suất của máy chủ, vì vậy tôi muốn thử và sửa nhanh một chút

Câu trả lời:


35

Bạn có thể sử dụng --rsync-pathtùy chọn, ví dụ.

rsync --rsync-path="nice rsync" foo remotebox:/tmp/

15
Bạn cũng có thể cân nhắc sử dụng ionice , ví dụ --rsync-path="ionice -c 3 nice rsync", mặc dù các Linux hiện đại tự động giảm mức ưu tiên IO cho các quy trình tốt đẹp (xem trang hướng dẫn tôi đã liên kết).
Jo Liss

Tôi đã thử nó, nhưng sshd của tôi vẫn đang chạy ởnice 0
Felipe Alvarez

trên FreeBSD như các hệ thống mà bạn không có ionice, cài đặt --bwlimittùy chọn phù hợp với rsync đẹp hơn.
deed02392

1
Tôi cũng có một vấn đề với tùy chọn này không làm cho bất kỳ sự khác biệt. Hóa ra máy chủ mà tôi đang kết nối được cấu hình trong ủy quyền để chỉ chấp nhận một lệnh rsync cụ thể, ghi đè --rsync-pathtùy chọn mà tôi đang chỉ định.
Andy Beverley

7
  • Chọn --rsync-pathtùy chọn bạn córsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
  • Lấy tùy chọn tập tin cấu hình , bạn có thể thay đổi hoặc bỏ ghi chú trong tập tin /etc/default/rsynccác RSYNC_NICE='17'giá trị và RSYNC_IONICE='-c3'giá trị

Đối với cả hai giá trị ionice sẽ được ưu tiên cho đĩa cứng

  • 1 -> Thời gian thực
  • 2 -> Nỗ lực tốt nhất
  • 3 -> Ildle (khi bất kỳ quá trình nào khác không sử dụng HD)

Lưu ý rằng đối với Linux, bộ lập cfqlịch chỉ thực sự triển khai các lớp và ưu tiên IO. Nếu người quản trị hệ thống từ xa đã chọn để IO lên lịch noop, deadlinehoặc một số biến thể kỳ lạ hơn, bạn có thể thấy rằng ionicethực sự không có gì. Một người có thể có được hiệu suất cao từ cfqvà vẫn có thể sử dụng các lớp và ưu tiên IO bằng cách điều chỉnh cfq một cách chính xác .

cho giá trị tốt cho ưu tiên bộ xử lý

  • -20 (thuận lợi nhất cho quá trình)
  • (mặc định 10) nếu -n không được chỉ định
  • 19 (ít thuận lợi nhất cho quá trình)

Ai chịu trách nhiệm /etc/default/rsync? Là rsync tự đọc tệp này, hoặc điều này được thực hiện bởi linux-Hương vị / phân phối?
guettli

... Tôi nghĩ rằng tôi đã tìm thấy giải pháp /etc/default/rsynclà tệp mặc định cho chế độ rsync daemon. Tôi đoán nó chỉ áp dụng nếu bạn kết nối với daemon rsync thông qua giao thức rsync. Tôi đoán nó không áp dụng nếu bạn gọi nó qua ssh.
guettli

2

Giải pháp nhanh và bẩn sẽ là tạo một tập lệnh bao bọc nhỏ gọi là 'rsync', làm mờ $ PATH trước nhị phân rsync thực như:

#!/bin/sh
nice -10 /path/to/proper/rsync $*

Hoặc thiết lập tệp ủy quyền để nó thực hiện việc kết nối rsync. (Giả sử bạn đang sử dụng các phím ssh).

thí dụ:

command=”/home/user/bin/nice-rsync.sh" ssh-dss asdf....

Bây giờ trong /home/user/bin/nice-rsync.sh của bạn

#!/bin/sh
case $SSH_ORIGINAL_COMMAND in
  rsync\ --server*)
    nice -10 $SSH_ORIGINAL_COMMAND
    ;;
  *)
    $SSH_ORIGINAL_COMMAND
    ;;
esac

HTH


2

Bạn có thể vô hiệu hóa việc nén dọc mạng, bằng cách không bao gồm -zđối số, điều đó có thể tiết kiệm thời gian của CPU ở hai bên. Hoặc thay đổi cách rsync sử dụng tổng kiểm tra, xem xét--checksum


Tôi đã chấp nhận câu trả lời của Hasturkun (vì nó đã trả lời câu hỏi của tôi), nhưng bạn đã đưa ra một điểm hay: Tôi đã điểm chuẩn với nén so với không nén và nó chỉ thêm 2 phút cho công việc. Tôi đã quá quen với việc sử dụng -avz làm cờ của mình mà tôi không bao giờ nghĩ đến việc thả -z.
tường thuật

Thói quen của tôi là sử dụng -aPh, tôi hiếm khi sử dụng -z
Rory

0

Rsync không nên sử dụng nhiều CPU. Tôi nghi ngờ rằng bạn có thể buộc một sự độc đáo nhất định từ đầu bên kia, nhưng điều bạn có thể làm là giới hạn băng thông mà rsync đang sử dụng với tường lửa, điều này cuối cùng sẽ làm giảm lượng xử lý có thể làm trong khoảng thời gian X.


Đã thêm một số đầu ra từ 'ps aux' để hiển thị những gì nó đang làm cho đến tận CPU. Tôi đang truy cập một liên kết chậm, vì vậy tôi đã bật tùy chọn - nén, nhưng nó cũng gây ra một lượng truy cập đĩa tốt, điều mà tôi hy vọng sẽ đánh sập bằng cách sử dụng (hiệu ứng phụ không mong muốn)
mwalling

Đặt giá trị đẹp thường cũng ảnh hưởng đến độ đẹp I / O, đó là điều mà ai đó thường muốn.
Bram Schoenmakers

rsynckhông yêu cầu nhiều CPU nhưng nó có thể xuất hiện toptuy nhiên tùy thuộc vào việc kernel hiện tại coi I / O chờ là bận. Ngoài ra, nếu bất kỳ quá trình nào khác cần truy cập vào bộ lưu trữ và rsyncđược phép chạy ở tốc độ tối đa, tất cả các quy trình khác sẽ bị chậm lại.
Mikko Rantalainen

-7

Tôi không nghĩ vậy, bạn cần một giải pháp tùy chỉnh cho việc đó .. sử dụng ftp


6
Bạn biết đấy, đó là một ý tưởng tốt. Ai cần tất cả các tính năng của rsync như có thể chạy trên ssh mà không cần daemon chạy trên máy từ xa (và mã hóa vốn có của ssh), truyền nén, tiếp tục tải xuống, chỉ chuyển các khác biệt ... đó là tất cả các tính năng sưng lên. Tôi sẽ chạy về nhà ngay bây giờ và sử dụng Hệ thống 60 / PS của tôi để FTP một số phim hoạt hình!
mwalling

Vui lòng xóa câu trả lời này vì nó không trả lời được câu hỏi và đưa ra một giải pháp thay thế tồi tệ hơn đáng kể so với ví dụ trong câu hỏi.
dùng1133275
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.