Cara membatasi kecepatan penulisan HDD untuk program yang dipilih

23

HDD saya lambat 5400RPM dan ketika bekerja dengan file ukuran 10GB tidak mungkin untuk menggunakan komputer sampai file besar selesai membuat kembali copy / muxing / writing / etc. tergantung pada proses, masalahnya memakan semua kecepatan HDD dan tidak ada program lain yang dapat digunakan saat proses ini berjalan.

Jadi saya berpikir mungkin saya dapat membatasi kecepatan penulisan HDD untuk program yang saya gunakan, jadi itu akan mencadangkan kecepatan sisa HDD gratis untuk digunakan untuk menjelajah internet atau memutar mp3 saat file-file besar sedang diproses.

pengguna3108268
sumber
2
Saya belum pernah mendengar tentang HDD IO yang dibatasi di Windows, setidaknya secara asli. Apakah Anda mencoba menetapkan proses prioritas :wmic process where name="calc.exe" CALL setpriority "idle"
Marcelo
@Marcelo Priority menentukan waktu CPU, bukan disk. Saat memproses file besar, disk adalah apa yang memperlambat komputer, bukan CPU.
Keltari
2
Terkait: superuser.com/questions/462541/…
Cees Timmerman
@Keltari Ya, saya sadar. Saya hanya berpikir bahwa mungkin memodifikasi prioritas untuk CPU bisa memiliki beberapa dampak terhadap tujuan akhir dalam pertanyaan.
Marcelo
2
Jika komputer "tidak dapat digunakan" saat menyalin file besar, apakah mungkin Anda lupa mengaktifkan DMA? Biasanya, apakah disk sedang sibuk atau tidak ada perbedaan karena itu terjadi tanpa banyak (atau ada) intervensi CPU.
Damon

Jawaban:

13

Sayangnya, Anda tidak dapat melakukannya. Perangkat keras disarikan dari aplikasi dan bahkan bagian dari OS. Intinya, aplikasi mengatakan "tulis ini ke disk" dan OS menanganinya. Aplikasi tidak menangani bagaimana atau bahkan ketika itu ditulis. Semua ini ditangani pada tingkat driver dan kernel dan tidak ada cara nyata untuk mengubahnya.

Bahkan jika Anda bisa melakukan ini, kenyataannya adalah Anda menggunakan disk magnetik berputar - dan sangat lambat - Anda tidak akan melihat banyak keuntungan. Drive terus berputar dan kepala bergerak di sepanjang disk. Bahkan jika Anda menulis ke file Anda lebih sedikit, disk akan terus mencari area yang tepat pada disk untuk membaca / menulis ke / dari.

Pilihan terbaik Anda adalah mendapatkan drive lain dan melakukan pekerjaan Anda di drive itu, meninggalkan drive pertama Anda untuk internet, MP3, dll.

PS Anda tidak menyebutkan berapa banyak RAM yang Anda miliki. Bertukar bisa menjadi faktor dalam kecepatan lambat. Bergantung pada berapa banyak RAM yang Anda miliki, menambahkan lebih banyak hanya akan membantu.

Keltari
sumber
2
Bukankah Linux versi Windows ionicehampir menjadi jawaban?
Daniel Beck
@DanielBeck Mungkin ada perangkat lunak di luar sana yang mungkin berfungsi. Namun, siapa yang tahu komplikasi apa yang mungkin muncul akibat menggunakannya? Akan sangat lebih mudah untuk hanya tamparan di drive lain dan dilakukan dengan masalah ini.
Keltari
1
Kamu bisa melakukannya. Lihat jawaban dsulimano untuk pertanyaan serupa
niutech
1
Saya tidak melihat argumen berprinsip mengapa aplikasi tidak dapat diperlambat. Berikut ini adalah throttle yang sangat sederhana: Tangguhkan proses selama 1 detik setiap detik. Itu mencekik IO sekitar 50% dan memungkinkan proses lain masuk untuk menggunakan disk. Waktu mencari berada di urutan 10 ms.
usr
@ usr: Tergantung pada jenis dan frekuensi I / O. Pendekatan Anda bekerja dalam beberapa kasus tetapi tidak dalam kasus lain - misalnya jika I / O terjadi sepenuhnya dalam mode kernel, saya tidak berpikir Anda selalu dapat menghentikannya dengan menghentikan proses mode pengguna.
Mehrdad
9

Proses Lasso memungkinkan Anda untuk memprioritaskan I / O. Dari FAQ mereka:

Baru di v4.1 (v4.09 beta), Process Lasso memiliki pengaturan prioritas I / O saat ini dan standar tersedia bagi mereka yang membutuhkannya. Ini hanya berlaku untuk NT6 + (Vista, Win7, ...).

NAMUN, prioritas I / O Vista didasarkan pada prioritas utas yang melakukan I / O, yang tergantung pada kelas prioritas proses yang melakukan I / O. Sebenarnya hanya ada dua tingkat prioritas yang dapat digunakan oleh aplikasi, Normal dan Sangat Rendah. Meskipun secara teknis ada 5, hanya keduanya yang diimplementasikan atau digunakan oleh proses.

Oleh karena itu, penyesuaian prioritas utas akan menyebar ke I / O utas itu. Dengan cara ini, Proses Lasso sudah melakukan prioritas I / O. Microsoft merekomendasikan aplikasi menyesuaikan prioritas I / O mereka dengan menetapkan prioritas utas panggilan (langsung atau dengan menyesuaikan kelas dasar prioritas proses).

Lihat juga makalah tentang prioritas I / O dari Microsoft .

niutech
sumber
1

Apa yang saya lakukan ketika saya memiliki proses yang terus memakan semua I / O disk saya di Windows adalah memunculkan Process Explorer dan menghentikan proses yang menyinggung. Setelah saya selesai dengan bisnis saya dan siap untuk menunggu sedikit, saya melanjutkannya. Ini jelas bukan cara paling produktif untuk melakukannya karena ini semua atau tidak sama sekali cara mengendalikan disk I / O dan proses Anda harus menunggu saat Anda menggunakan komputer Anda, tetapi sejauh ini saya belum melihat alternatif yang lebih baik.

Di sisi lain, jika Anda dapat melakukan proses Anda di Cygwin, Anda dapat menginstal pvdi komputer Anda dan menggunakannya sebagai langkah pertama atau terakhir dengan opsi (saya pikir itu -r) untuk mempercepat laju output pv.

RAKK
sumber