如何阻止作業系統限制我的 CPU/RAM 使用?

如何阻止作業系統限制我的 CPU/RAM 使用?

我有一個使用 的 python 程序multiprocessing.Pool,這意味著它會產生多個進程。該程式會取得 70k 文字文件,進行一些處理,並將它們儲存到另一個目錄。我想在運行時利用所有 CPU 核心,例如

有一段時間,我已經能夠做到了。我的程式每次運行大約需要 10 秒,這很好。

real    0m12.430s
user    0m13.072s
sys     0m9.704s

但最近幾天,情況卻不太穩定。有時它會為所有核心使用 100% CPU。其他時候,程式無緣無故只使用了0-1%,運行時間長達5分鐘。

real    5m6.186s
user    0m4.844s
sys     0m4.968s

請注意,real >> user + sys,儘管我不知道這意味著什麼。另請注意,我不會在運行之間更改程式碼的任何參數或任何其他設定。在這種情況下,我還注意到每個進程的 RAM 使用量永遠不會超過 10 MB,這可能會影響 CPU 使用率。

我的問題是,我怎麼樣才能開始來診斷這個問題?我的一些假設是:

  1. 作業系統偵測到我的筆記型電腦已使用 2 年,並嘗試透過限制 CPU/RAM 使用來延長其使用壽命
  2. 如果某個行程的 CPU/RAM 使用量已經消耗了相當長一段時間,那麼作業系統可能會限制該行程的 CPU/RAM 使用量。
  3. 有人遠端存取我的筆記型電腦並對我進行惡意攻擊

我在一台配備 Intel(R) Core(TM) i3-4005U CPU @ 1.70GHz、4 核心、8 GB RAM、HDD 的筆記型電腦上執行 Linux Mint 17.3

提前致謝。

編輯:這是程式運行時的 vmstat 輸出

procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 3  1      0 2773588 242912 2522744    0    0   114    54  229  812 11  2 83  5  0

相關內容