Saya perlu menjalankan convert
dengan banyak gambar pada saat yang sama. Perintah itu memakan waktu cukup lama tetapi ini tidak mengganggu saya.
Masalahnya adalah bahwa perintah ini membuat komputer saya tidak dapat digunakan saat perintah sedang berjalan (sekitar 15 menit).
Jadi mungkinkah untuk membatasi perintah dengan membatasi sumber daya (prosesor dan memori) ke perintah, langsung dari baris perintah? Ini hanya dapat berfungsi jika saya menambahkan sesuatu ke baris yang sama sebelum menekan Enterkarena begitu saya memulai proses komputer melambat sehingga tidak mungkin misalnya untuk beralih ke "System monitor" dan mengurangi prioritas.
Edit: hasil atas dan iotop
Saya berhasil menjalankan top
dan sudo iotop >iotop.txt
saat melakukan salah satu dari operasi konversi ini. (File iotop.txt yang dihasilkan sulit dibaca)
Hasil dari atas:
PID PENGGUNA PR NI VIRT RES SHR S% CPU% MEM TIME + PERINTAH 14275 nama pengguna 20 0 4043m 3.0g 1448 D 7.0 80.4 0: 16.45 dikonversi
Hasil iotop:
[? 1049j [1; 24r (B [m [4l [? 7j [? 1j = [39; 49m [? 25l [39; 49m (B [m [H [2Jumlah DISK BACA BACA: 1269,04 K / s | Total DISK WRITE] : [59G0,00 B / s (B [0; 7m TUNGGU PRI PENGGUNA DISK BACA DISK MENULIS SWAPIN (B [0; 1; 7m IO> (B [0; 7m PERINTAH [3; 2H (B [m2516 menjadi / 4 nama pengguna 350.08 K / s 0,00 B / s 0,00 B / s 0,00% 0,00% zeitgeist-datahub 7394 menjadi / 4 nama pengguna 568,88 K / s 0,00 B / s 77,41% 0,00% --rendere ~ .530483991 [5; 1H14275 nama pengguna menganggur 350,08 K / s 0,00 B / s 37,49% 0,00% konversi S ~ f test.pdf [6 ; 2H2048 menjadi / 4 root [6; 24H0.00 B / s 0,00 B / s 0,00% 0,00% [pekerja / 3: 2] [5G1 menjadi / 4 root [7; 24H0.00 B / s 0,00 B / s 0,00% 0,00% init
Lebih lanjut, bahkan setelah proses berakhir, komputer tidak kembali ke kinerja sebelumnya. Saya menemukan jalan keluar dengan menjalankan sudo swapoff -a
diikuti olehsudo swapon -a
sumber
convert *.tif bla.pdf
proses pada satu waktu, tetapi inputnya adalah sejumlah besar gambar. Ini adalah cara untuk menghasilkan satu pdf dari banyak gambar yang berfungsi dengan baik tetapi melumpuhkan pc saya.find . -iname '*.tif' | xargs -I% convert % %.pdf
bukannyafind . -iname '*.pdf' | xargs -I% convert % %.pdf
. Itu juga lebih cepat! Terima kasih.-exec
dan-execdir
opsi untukfind
. Dalam kasus Anda, daripada menggunakanxargs
, saya akan menggunakan:find -iname '*.tif' -execdir convert {} {}.pdf ';'
man nice
, Dan jika Anda membutuhkan I / O throttlingman ionice
.Mari kita lihat beberapa contoh sederhana.
Penggunaan CPU pelambatan:
Dari uraian Anda, bagaimanapun, penggunaan CPU hampir pasti bukan masalah Anda yang sebenarnya di sini. Kemungkinan besar, Anda mengalami pertengkaran I / O yang parah.
Penggunaan Disk Throttling:
-c2
adalah "upaya terbaik", dan-n7
merupakan prioritas "upaya terbaik" terendah. Jadi, ini akan mempercepat pekerjaan untuk menurunkan prioritas I / O daripada kebanyakan hal lain pada sistem.-c3
(tidak diperlukan tingkat prioritas) berarti "Hanya menganggur". Pekerjaan yang DILAKUKAN untuk-c3
HANYA mengambil waktu penjadwalan disk yang menganggur, untuk hampir tidak berdampak sama sekali pada sistem - tetapi berpotensi waktu eksekusi yang jauh lebih lama untuk pekerjaan Anda, tergantung pada seberapa sibuknya sisa sistem.sumber
nice
dalam perintah convert? Jika saya tidak salah, kerja bagus untuk proses yang sudah berjalan.nice -n 20
lain kali.iotop
sementara menjalankan proses? Biasanya satu proses memakan banyak CPU akan memiliki efek yang sangat kecil pada kegunaan sistem, tetapi proses meronta-ronta hard drive dapat SANGAT cepat membawa semuanya berhenti melengking - terutama jika Anda menggunakan drive konvensional, bukan SSD.convert blah.gif blah.jpg & iotop
sehinggaiotop
akan langsung menyala segera setelah Anda memulaiconvert
pekerjaan Anda .Berikut ini adalah artikel yang cukup bagus tentang penggunaan program yang dipanggil
cpulimit
untuk membatasi penggunaan CPU dari proses apa pun:http://maketecheasier.com/limit-cpu-usage-of-any-process-in-linux/2010/09/22
Masalahnya seperti Anda mengatakan menemukan PID dari
convert
proses setelah itu dimulai.Setelah memulai
convert
jika Anda masih bisa mengetik perintah di terminal Anda dapat menjalankanps aux | grep convert
untuk menemukan itu PID, kemudiansudo cpulimit -p PID -l CPU%
mulai pelambatan.Atau jika memulai
convert
juga mengunci terminal Anda, artikel menunjukkan kepada Anda bagaimana Anda dapat menjalankancpulimit
sebagai daemon latar belakang yang secara otomatis akan memantau dan membatasi setiap proses selama jumlah penggunaan CPU tertentu. Semoga berhasil!sumber
nice
perintah bawaan.cpulimit
akan membatasi proses untuk penggunaan CPU tertentu% atau tidak hal lain membutuhkan waktu CPU;nice
, sebaliknya, menetapkan tingkat prioritas (40 total!) yang memungkinkan penentuan prioritas satu tugas di atas (atau di bawah) tugas lainnya.