CPULimit,限制進程對CPU的使用

關於CPULimit

在下一篇文章中,我們將看一下CPULimit。 這是一個命令行工具, 限制進程的CPU使用率(以百分比表示,而不是CPU時間)。 當我們不希望進程消耗太多的CPU週期時,這對於控制批處理作業很有用。

使用此工具,我們不會更改值或其他優先級設置,而會更改CPU的實際使用情況。 另外,它能夠動態,快速地適應系統的一般負載。 通過使用以下命令控制使用的CPU數量 信號 停止信號 y 信號控制 POSIX 到流程。 指定進程的所有子進程和線程將共享相同的CPU百分比。

安裝CPULimit

現“ CPULimit”為 在大多數類似Unix發行版的默認存儲庫中可用。 我們可以使用各自的Gnu / Linux發行版中的默認軟件包管理器進行安裝。 對於當前的示例,我們將看到如何在Debian,Ubuntu和Linux Mint上安裝它。 我們只需要打開一個終端(Ctrl + Alt + T)並在其中編寫以下命令:

sudo apt-get install cpulimit

谁愿意諮詢其他類型的設施 項目GitHub頁面.

使用CPULimit

安裝該工具後,就該看看它是如何工作的。 為此,我們將運行一個消耗大量CPU資源的程序。 以下命令必須以root用戶身份運行。

創建消耗CPU資源的腳本

首先我們要 創建一個名為derrochecpu.sh的文件。 我將使用 Vim編輯器,但每個人都使用自己喜歡的一種。 在終端(Ctrl + Alt + T)中,我們必須編寫:

vim derrochecpu.sh

打開後,我們將按“鍵ESC' 接著 'i'。 現在,我們將添加以下行:

vim腳本splurgecpu

#!/bin/bash
while :; do :; done;

完成此操作後,就該保存並退出了。 為此,我們將按'鍵ESC'我們將寫 :WQ 保存並關閉文件。 該簡短腳本將重複執行而不會中斷,從而消耗最大的CPU使用率。 因此,建議在虛擬機中對其進行測試。

現在,我們將使該文件可執行。 為此,從同一終端(Ctrl + Alt + T),我們將執行:

chmod +x derrochecpu.sh

啟動腳本

現在,我們將在後台啟動該過程。 我們將使用以下命令執行此操作:

./derrochecpu.sh &

PID腳本splurgeCPU

我們將保留過程的PID。 在這種情況下,6472是啟動進程的PID。

檢查它消耗了多少CPU

我們可以使用 命令«頂部» 在同一終端:

頂級腳本splurgeCPU

top

從上面的屏幕截圖可以看出,wastecpu.sh進程消耗了超過96%的CPU使用率。 由於它消耗大量的CPU使用率,因此很難執行其他任務。 幾分鐘後, 系統可能崩潰或死機。 這就是CPULimt協助我們的地方。

通過PID限制CPU使用率

現在,讓我們使用CPULimit工具限制此進程的CPU使用率。 我們準備去 通過其相應的PID將CPU使用率限制為35% (關於)。 為此,請運行:

cpulimit -l 35 -p 6472 &
  • 選項 ”-l 35»將過程限制為大約35%。
  • «-p 6472»這是我們之前看到的derrochecpu.sh的PID。

檢查CPULimit的效果

啟動上一個命令後,讓我們再次檢查該進程的CPU使用率。 為此,我們將再次使用top命令:

頂級腳本CPULimit浪費

top

從上圖可以看到,wastefulcpu.sh的CPU使用率已降至35,6%,非常接近35%。 現在呀 我們可以擁有更多的CPU資源來運行其他進程.

通過文件名限制CPU使用率

我們已經看到瞭如何使用PID來限製過程。 也 我們可以執行CPULimit命令,指定可執行程序文件的名稱.

例如,上面的相同示例將是:

cpulimit -l 30 ./derrochecpu.sh &

在運行消耗過多CPU使用量的進程時,CPULimit可能很有用。 下次我們注意到某個程序消耗了太多的CPU時,我們只需要使用命令«查找該進程的PID,最佳«。 有了它時,只需使用本文所述的CPULimit命令將CPU使用率限制為最小值。

卸載CPULimit

從我們的系統中刪除此工具非常簡單,只需打開一個終端(Ctrl + Alt + T)並輸入以下內容即可:

sudo apt remove cpulimit

本文描述了什麼 這只是一個例子。 顯然,沒有人會在自己的計算機上啟動像此處描述的腳本那樣的腳本。


發表您的評論

您的電子郵件地址將不會被發表。 必填字段標有 *

*

*

  1. 負責數據:MiguelÁngelGatón
  2. 數據用途:控制垃圾郵件,註釋管理。
  3. 合法性:您的同意
  4. 數據通訊:除非有法律義務,否則不會將數據傳達給第三方。
  5. 數據存儲:Occentus Networks(EU)託管的數據庫
  6. 權利:您可以隨時限制,恢復和刪除您的信息。

  1.   賈普 他說:

    你好
    對於我所擁有的amd64 x2似乎有散熱問題的舊PC而言,它是完美的選擇,當某個進程在幾分鐘內消耗大量CPU時,它會加熱到100ºC並關閉。
    因此,當我看到某個進程(通常是一些網站或視頻渲染程序)使我升高CPU的溫度時,我將使用cpulimit來消除該進程中的“電源”。
    謝謝