Setara dengan `nice` untuk IO filesystem?

11

Ketika saya menjalankan rsyncpekerjaan pencadangan yang melibatkan menyalin file-file besar, mesin yang menjalankan pencadangan (baik desktop Mac dan server Linux) terhenti dan rata-rata beban melewati atap.

Saya sudah mencoba:

  • niceing rsyncproses (tidak membantu - bottleneck adalah disk)
  • Di Linux, reniceing a kjournald(membantu, tetapi tampak seperti peretasan dan tidak berfungsi pada Mac)
  • Menggunakan --bwlimit rsyncbendera (membantu, tetapi itu berarti semua transfer lambat - bahkan ketika mereka tidak perlu)

Jadi, apakah ada cara saya bisa " nice" rsync's IO sehingga mesin yang bisa digunakan sementara cadangan sedang berjalan?

PS: Saya menyadari bahaya rsyncdi Mac ... Tapi saya sudah menggunakan BackupBouncer untuk memverifikasi cadangan saya, dan mereka tampak baik-baik saja.

David Wolever
sumber

Jawaban:

7

Sepertinya setpriorityAPI pada Mac OS X seharusnya dapat mengubah penjadwalan IO (lihat http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man2/setpriority.2.html ) . Saya tidak memiliki MacOS yang berguna jadi saya tidak dapat menguji yang nicebenar - benar mengubah prioritas IO.

Di sisi Linux, ioniceadalah apa yang Anda cari.

Evan Anderson
sumber
1
Ah terima kasih. Inilah yang dikatakan halaman setprioritymanual: "Ketika mengatur utas ke status latar belakang prioritas penjadwalan diatur ke nilai terendah, disk dan IO jaringan dibatasi." - yang tampaknya menunjukkan bahwa IO disk / jaringan hanya dibatasi ketika ada sesuatu yang direduksi menjadi 20 ("latar belakang negara").
David Wolever
2
Beberapa pengujian cepat juga tampaknya mengkonfirmasi ini - ketika skrip cadangan hanya diringkas menjadi 10 (yaitu, nice backup), saya melihat perlambatan ... Tapi ketika itu turun ke 20 (yaitu, nice -n 20 backup), saya tidak melihat adanya pelambatan.
David Wolever
(dan dengan "memperhatikan perlambatan" maksud saya "memperhatikan bahwa program interaktif yang berjalan di komputer tidak merespons secepat biasanya")
David Wolever
1
Agak mengecewakan bahwa Anda hanya mendapatkan pelambatan dengan prioritas 20 saja.
Evan Anderson
+1, jawaban yang bagus. Selalu bertanya-tanya tentang memutar-mutar IO.
Avery Payne
4

Di linux Anda dapat menggunakan ionice http://linux.die.net/man/1/ionice

Rory
sumber
Contoh penggunaan:ionice -c idle rsync ...args...
VasyaNovikov