tujuan rsync ionice

14

Untuk menghindari rsync membuat sistem dan jaringan kelaparan, kami menggunakan ionicesaat memulai rsync dan mengatur --bwlimitparameter. Sebagai contoh:

ionice -c2 -n7 rsync -aH --bwlimit=30000 /foo [email protected]:/

Ini memang membantu memastikan server sumber tetap responsif. Namun, server tujuan menjadi sangat lambat karena disk io pada 100% (seperti yang terlihat oleh atoputilitas).

Apakah mungkin juga digunakan ionicedi server tujuan? Mungkin melalui -eopsi rsync ? Saya lebih suka tidak menjalankan daemon rsync jika memungkinkan.

Jason Smith
sumber

Jawaban:

11

Mengubah perintah rsync atau membungkusnya dalam skrip shell untuk memasukkan perintah / parameter ionice adalah opsi. Anda juga dapat memanfaatkan --rsync-pathopsi, yang memberitahu rsync perintah mana yang harus dijalankan pada server jauh. Sesuatu seperti --rsync-path="ionice -c2 -n7 rsync"akan memastikan bahwa ionice berjalan pada tujuan.

Saya akan menambahkan bahwa ionice tidak selalu efektif, tergantung pada konfigurasi server. Ini hanya berfungsi dengan elevator CFQ I / O default . Jika Anda telah melakukan penyetelan sistem penyimpanan, pendekatan ini mungkin tidak berlaku.

Bisakah Anda memberikan contoh beban atau membantu menjelaskan bagaimana sistem menjadi sumber daya selama penyalinan? Saya akan cenderung menggali lebih dalam dan melihat mengapa rsync, terutama terbatas pada tingkat rendah yang Anda sebutkan dalam contoh Anda, akan menyebabkan begitu banyak masalah.

Apa yang kamu salin? Apa pengaturan perangkat keras / OS?

putih
sumber
Kami memiliki beberapa host OpenVZ. Ini adalah mesin 16-core Xeon yang menjalankan CentOS. Setiap malam kami menyalin semua wadah OpenVZ ke host lain. Karena alamat IP kami dapat dirutekan ke semua host, ini memungkinkan kami untuk dengan cepat mengaktifkan VPS cadangan jika tuan rumah gagal.
Jason Smith
Seberapa tinggi bebannya? Apakah ini salinan lokal-ke-lokal? Apakah ada perubahan pada elevator I / O penyimpanan?
ewwhite
Dari apa yang saya lihat, membatasi bandwidth jaringan tidak membatasi disk io (ribuan direktori perlu dipindai, bahkan jika tidak ada file yang berubah). Haruskah --bwlimit juga membatasi disk i / o?
Jason Smith
Menurut atopdisk io terus meledak hingga 100%. Saya tidak yakin apa yang Anda maksud dengan "storage I / O elevator", jadi saya mungkin menjalankan defaultnya?
Jason Smith
2

Perintah rsync Anda juga meluncurkan rsyncperintah di tujuan jarak jauh.

Cobalah untuk menempatkan yang berikut ini ke pengguna root server tujuan Anda. Bashrc, dengan kata lain untuk /root/.bashrc

alias rsync="ionice -c2 -n7 rsync"
Janne Pikkarainen
sumber
A ~/.bashrchanya bersumber untuk sesi interaktif dan saya tidak berharap bahwa pengaturan alias di sana akan mengubah cara rsync dijalankan.
HBruijn