Cara alternatif untuk membatasi penggunaan cpu:1. Gunakan perintah kumpulan tugas.2. Gunakan grup kontrol.3. Gunakan buruh pelabuhan dan batasi pemanfaatan cpu dengan menggunakan cpuset.4. Kurangi jumlah utas dalam aplikasi. Beberapa perhitungan diperlukan dengan pendekatan ini.
Hal lain yang dapat Anda coba adalah menjalankan cpulimit
sebagai daemon. Saya belum menguji ini; itu hanya sebuah ide.
Itu ada di repo ubuntu:
sudo apt install cpulimit
Gunakan systemd jika Anda suka. Ini harus membatasi semua contoh dd hingga 20% CPU.
[Unit]
Description=dd CPU Limiter
[Service]
ExecStart=/usr/bin/cpulimit -e dd -l 20
[Install]
WantedBy=multi-user.target
sumber
Saya tidak sengaja menemukan jawaban valid lain yang diberikan di https://unix.stackexchange.com/questions/213903/linux-cgroups-limit-cpu-usage-in-absolute-values-which-do-not-depend-on-cpu -spe
Jika Anda menginginkan batasan keras pada bandwidth CPU, Anda dapat menggunakan cpu.cfs_quota_us dan cpu.cfs_period_us. Dari dokumen CFS Kernel:
Bandwidth yang diizinkan untuk grup ditentukan menggunakan kuota dan periode. Dalam setiap "periode" (mikrodetik) yang diberikan, sebuah grup hanya diperbolehkan menggunakan hingga "kuota" mikrodetik waktu CPU. Saat konsumsi bandwidth CPU suatu grup melebihi batas ini (untuk periode tersebut), tugas-tugas yang termasuk dalam hierarkinya akan dibatasi dan tidak diizinkan untuk berjalan lagi hingga periode berikutnya.