Cpu

cpulimitnice 在限制包含使用 theano 進行大量計算的 python 程序的 cpu 使用方面無效

  • March 18, 2016

我正在執行一個用 python 編寫的程序,該程序使用theano進行大量計算。

由於它是一個佔用大量 CPU 資源的程序,因此它擾亂了我在筆記型電腦上的所有其他活動。

出於這個原因,我一直將程序的 nice 級別設置為 19,並且習慣cpulimit將​​其 CPU 使用率降低到 10%。

不幸的是,這些嘗試並沒有奏效,因為筆記型電腦有時甚至會卡住幾分鐘。

您對如何解決這個問題有任何想法嗎?如何指示調度程序正常執行?

筆記型電腦是配備英特爾酷睿 i5-3317U 的三星超極本(新系列 9)。作業系統為 Linux,Ubuntu 15.10,核心為 4.2.0。

編輯:問題似乎是由垃圾(記憶體不足,不斷交換)引起的

這種無響應,儘管 CPU 有限,但通常是由交換引起的(即,您的程序將其他任務推送到磁碟並將它們重新放入將花費大量時間)。

限制記憶體使用的最佳方法通常是在程序內部。如果這是不可能的並且記憶體消耗緩慢(因為它沒有被釋放),那麼可能有必要經常殺死程序並重新啟動。當然,這只適用於定期編寫中間結果的情況。

從程序外部,您可以使用腳本限制記憶體量timeout(這不是 coreutils 的超時!)。它有一個-m限制記憶體的選項,如果它開始消耗太多記憶體,它會終止你的程序。

如果您無法重新開始處理,那麼您的選擇是

  • 如果可以安裝,請為您的機器購買更多記憶體
  • 如果您的筆記型電腦支持,則安裝 SATA SSD 並在其上進行交換
  • 重寫軟體以小塊工作

引用自:https://unix.stackexchange.com/questions/270690