Saat menggunakan rsync + ssh untuk mengakses mesin jarak jauh, apakah ada cara untuk "membuat" proses rsync pada mesin jarak jauh (menurunkan prioritasnya)?
Mengedit pertanyaan untuk menjelaskan:
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...
(garis rsync terpotong)
Ini adalah tugas cron cadangan yang biasanya berjalan pada jam 4 pagi, tetapi ketika saya kebetulan bangun (dan melakukan, atau menggunakan Bugzilla yang dihosting di mesin yang sama), itu membunuh kinerja server, jadi saya ingin "hack" cepat untuk mencoba dan memperbaiki sedikit.
--rsync-path="ionice -c 3 nice rsync"
, meskipun Linux modern secara otomatis mengurangi prioritas IO untuk proses yang lebih baik (lihat halaman manual yang saya tautkan).nice 0
ionice
, pengaturan--bwlimit
opsi baik untuk rsync yang lebih bagus.--rsync-path
opsi yang saya tentukan.--rsync-path
opsi yang Anda milikirsync --rsync-path="ionice -c 3 nice -n 12 rsync" localDirectory remoteHost:/tmp/
/etc/default/rsync
yangRSYNC_NICE='17'
nilai danRSYNC_IONICE='-c3'
nilaiUntuk kedua nilai ionice akan menjadi prioritas hard disk
Perhatikan bahwa untuk Linux, hanya
cfq
scheduler yang benar-benar mengimplementasikan kelas dan prioritas IO. Jika administrator sistem jarak jauh telah memilih penjadwal IOnoop
,deadline
atau beberapa varian yang lebih eksotis, Anda mungkin menemukan ituionice
benar - benar tidak melakukan apa-apa. Seseorang harus bisa mendapatkan kinerja tinggi daricfq
dan masih dapat menggunakan kelas dan prioritas IO dengan menyetel cfq dengan benar .untuk nilai bagus untuk prioritas prosesor
sumber
/etc/default/rsync
? Apakah rsync sendiri membaca file ini, atau apakah ini dilakukan oleh linux-flavor / distribution?/etc/default/rsync
adalah file default untuk mode daemon rsync. Saya kira itu hanya berlaku jika Anda terhubung ke daemon rsync melalui protokol rsync. Saya kira itu tidak berlaku jika Anda menyebutnya melalui ssh.Solusi cepat dan kotor akan membuat skrip pembungkus kecil yang disebut 'rsync' yang membayangi $ PATH sebelum biner rsync nyata seperti:
Atau atur file otor_keys agar kinerjanya rsync. (Dengan asumsi Anda menggunakan kunci ssh).
contoh:
Sekarang di /home/user/bin/nice-rsync.sh Anda
HTH
sumber
Anda dapat menonaktifkan kompresi di sepanjang jaringan, dengan tidak menyertakan
-z
argumen, yang mungkin menghemat waktu CPU di kedua sisi. Atau ubah cara rsync menggunakan checksum, lihat--checksum
sumber
Rsync seharusnya tidak menggunakan banyak CPU. Saya ragu bahwa Anda dapat memaksakan kebaikan tertentu dari ujung yang lain, tetapi yang dapat Anda lakukan adalah membatasi bandwidth yang digunakan rsync dengan firewall, yang pada akhirnya akan mengurangi berapa banyak pemrosesan yang dapat dilakukan dalam jumlah waktu X.
sumber
rsync
tidak memerlukan banyak CPU tetapi mungkin muncul ditop
tergantung pada apakah kernel saat ini menganggap I / O menunggu sebagai sibuk. Selain itu, jika ada proses lain yang perlu mengakses penyimpanan danrsync
diizinkan untuk berjalan dengan kecepatan penuh semua proses lainnya akan melambat sebagai hasilnya.Saya rasa tidak, Anda memerlukan solusi khusus untuk itu .. gunakan ftp
sumber