iT邦幫忙

2

請教 linux 主動確保 shell(zsh) 的可用性,避免CPU100%完全動彈不得的方式

如題

想請教有沒有預先保留自家的 shell CPU RAM 使用量的方式嗎?

像是 save -cpu 20% -ram 1024mb -exe shell <- 這段自己亂想的
(主動保留 cpu 20% 及 ram 1024mb 給 shell 程式用,其他程式無法染指)

主要情況是這樣的

剛剛 02:05 時執行了一個 python 腳本
結果 CPU 用量直接突破天際

在察覺CPU滿載的時候我趕緊下了

  1. ps aux
    (3分鐘過去了)

  2. cpulimit --pid 13135 --limit 50
    (6分鐘過去了,cpulimit 執行成功)

  3. ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head
    (5分鐘過去才顯示結果)

https://ithelp.ithome.com.tw/upload/images/20190927/20112304eLR0UF5dFs.png

如上圖,即使 CPU 用量後來有被限制成功
但其實下指令還是要等很久(約莫1、2分)

後來有思考是不是其他地方卡住了
所以去看了一下後台

環境:
GCP
f1-micro (1 個 vCPU,0.6 GB 記憶體)
10GB 標準永久磁碟(HDD)
Ubantu 16.04

https://ithelp.ithome.com.tw/upload/images/20190927/20112304zCLQFu0Mij.png
https://ithelp.ithome.com.tw/upload/images/20190927/20112304SFZ7SVb0gp.png
https://ithelp.ithome.com.tw/upload/images/20190927/20112304zIiyhhxRsI.png

恩...
依照 最佳化永久磁碟和本機 SSD 的效能 - 標準永久磁碟 IOPS 的表格(如下圖)
https://ithelp.ithome.com.tw/upload/images/20190927/20112304KHKT6KHet8.png
應該是 IOPS 卡住了...
這個好像限制CPU使用量也無解(?


恩,總之我目前還沒來的及下 kill -9 13135,他就又 CPU 120% 了
(乾... cpulimit加油rrrrr...

目前找到的解法大多都是 "自動砍使用 CPU 80% 以上程式"、"限制 XXX CPU 使用率" 這類的解法。

所以希望能找一個方式來確保 shell(zsh) 可以運作正常
避免再出現這種情況。

在此先謝過看到這裡的各位了 m(_ _)m

1 個回答

1
一級屠豬士
iT邦高手 1 級 ‧ 2019-09-27 10:31:40
最佳解答

https://en.wikipedia.org/wiki/Nice_(Unix)

可以利用 nice, renice 這組命令.

icekimo iT邦新手 4 級 ‧ 2019-09-27 17:31:03 檢舉

How to Set Linux Process Priority Using nice and renice Commands裡面How To Set Default Nice Value Of a Specific User’s Processes那小節的說明可以參考看看

we684123 iT邦新手 5 級 ‧ 2019-09-28 01:00:02 檢舉

啊 這正是我所需的
謝謝兩位(ノ>ω<)ノ

我要發表回答

立即登入回答