Catatan: Solusi ini hanya berfungsi dengan penjadwal cfq, seperti dijelaskan di sini . Anda harus memeriksa mana yang digunakan dengan mengeluarkan
cat /sys/block/sda/queue/scheduler
dan mengubahnya jika perlu.
Jika saya mengerti dengan benar, Anda ingin beberapa ionice
pengaturan diterapkan setiap kali Anda memulai perintah. Anda dapat melakukannya dengan cara ini:
echo 'ionice -c 3 /usr/bin/VirtualBox "$@"' > VirtualBox
chmod a+x VirtualBox
sudo mv VirtualBox /usr/local/bin/
Perintah pertama membuat file VirtualBox
dengan teks kutipan tunggal sebagai isinya. Ini harus memiliki path lengkap ke program, karena jika seseorang hanya menentukan VirtualBox
itu dapat menafsirkannya sebagai file yang baru saja kita buat dan membuat "loop".
Perintah kedua membuatnya dapat dieksekusi, dan ketiga memindahkan file baru ini dalam folder yang ada di depan folder "sistem" /usr/bin
, jadi file baru kami dijalankan bukan yang asli. Bagian "$ @" berisi semua argumen yang diminta oleh perintah, sehingga mereka diteruskan ke perintah VirtualBox yang sebenarnya.
Menurut jawaban ("ya") untuk pertanyaan Pengguna Super ini Apakah anak-anak memproses prioritas warisan dari orang tua mereka? Bagaimana Anda memeriksa prioritas IO dari proses yang berjalan? , seharusnya cukup untuk ionice
proses induk, seperti ini:
ionice -c 3 VirtualBox
Dari ionice
halaman manual , nilai kelas penjadwalan I / O berikut tersedia:
- 0 untuk tidak sama sekali
- 1 untuk waktu nyata
- 2 untuk upaya terbaik
- 3 untuk idle (digunakan dalam contoh di atas)
Nomor atau nama kelas dapat digunakan.
Selain itu, -n level
opsi berlaku untuk kelas waktu nyata dan upaya terbaik, dengan 0-7 sebagai data yang valid (tingkat prioritas).