linux限制cpu
① linux查看系統進程:Linux系統中如何限制用戶進程CPU佔用率
實際上在中用戶進程運行很長時間是可以接受
而佔用CPU過高則讓其他用戶無法忍受而其很有可能是用戶有問題這個時候系統應該自動阻止這樣進程繼續消耗系統資源最簡單思路方法就是通過ps發現CPU佔用率超過某個限制用戶進程然後將該進程殺死這種做法很暴力而且用戶發現他進程被殺以後很可能又啟動進程這樣惡性循環有種折中思路方法不是將目標進程殺死而是適當調整其nice值具體見如下shell:renice +10 `ps aux | awk '{ ($3 0.8 && id -u $1 500) pr $2}'`
② Linux系統中如何限制用戶進程CPU佔用率
而佔用CPU過高則讓其他用戶無法忍受,而其很有可能是用戶程序有問題,這個時候系統應該自動阻止這樣的進程繼續消耗系統資源。 最簡單的方法就是通過ps發現CPU佔用率超過某個限制的用戶進程,然後將該進程殺死,這種做法很暴力,而且用戶發現他的進程被殺以後很可能又啟動進程,這樣惡性循環。 有一種折中的方法,不是將目標進程殺死,而是適當調整其nice值,具體見如下shell程序: renice +10 `ps aux | awk '{ if ($3 > 0.8 && id -u $1 > 500) print $2}'` (責任編輯:雲子)
③ Linux下調節CPU使用的幾種方法
一,使用taskset充分利用多核cpu,讓cpu的使用率均衡到每個cpu上
#taskset
-p, 設定一個已存在的pid,而不是重新開啟一個新任務
-c, 指定一個處理,可以指定多個,以逗號分隔,也可指定范圍,如:2,4,5,6-8。
1,切換某個進程到指定的cpu上
taskset -cp 3 13290
2,讓某程序運行在指定的cpu上
taskset -c 1,2,4-7 tar jcf test.tar.gz test
需要注意的是,taskset -cp 3 13290在設定一個已經存在的pid時,子進程並不會繼承父進程的,
因此像tar zcf xxx.tar.gz xxx這樣的命令,最好在啟動時指定cpu,如果在已經啟動的情況下,則需要指定tar調用的gzip進程。
二,使用nice和renice設置程序執行的優先順序
格式:nice [-n 數值] 命令
nice 指令可以改變程序執行的優先權等級。指令讓使用者在執行程序時,指定一個優先等級,稱之為 nice 值。
這個數值從最高優先順序的-20到最低優先順序的19。負數值只有 root 才有權力使。
一般使用者,也可使用 nice 指令來做執行程序的優先順序管理,但只能將nice值越調越高。
可以通過二種方式來給某個程序設定nice值:
1,開始執行程序時給定一個nice值,用nice命令
2,調整某個運行中程序的PID的nice值,用renice命令
通常通過調高nice值來備份,為的是不佔用非常多的系統資源。
例:
nice -n 10 tar zcf test.tar.gz test
由nice啟動的程序,其子進程會繼承父進程的nice值。
查看nice值
# nice -n -6 vim test.txt &
# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 19427 2637 0 75 0 – 16551 wait pts/6 00:00:00 bash
4 T 0 21654 19427 0 71 -6 – 23464 finish pts/6 00:00:00 vim
renice調整運行中程序的nice值
格式:renice [nice值] PID
三,使用ulimit限制cpu佔用時間
注意,ulimit 限制的是當前shell進程以及其派生的子進程。因此可以在腳本中調用ulimit來限制cpu使用時間。
例如,限制tar的cpu佔用時間,單位秒。
# cat limit_cpu.sh
ulimit -SHt 100
tar test.tar.gz test
如果tar佔用時間超過了100秒,tar將會退出,這可能會導致打包不完全,因此不推薦使用ulimit對cpu佔用時間進行限制。
另外,通過修改系統的/etc/security/limits配置文件,可以針對用戶進行限制。
四,使用程序自帶的對cpu使用調整的功能
某些程序自帶了對cpu使用調整的功能,比如nginx伺服器,通過其配置文件,可以為工作進程指定cpu,如下:
worker_processes 3;
worker_cpu_affinity 0001 0010 0100 1000;
這里0001 0010 0100 1000是掩碼,分別代表第1、2、3、4顆cpu核心,這就使得cpu的使用比較平均到每個核心上。
④ 怎樣利用shell腳本或者程序,控制linux系統CPU和內存使用率
系統CPU和內存是無法控制的,只能是在系統上跑個什麼後台進程或者程序來使CPU下降才行。
⑤ Linux最多可以管理幾個CPU
Linux基於POSIX和UNIX的多用戶、多任務、支持多線程和多CPU的操作系統。它能運行主要的UNIX工具軟體、應用程序和網路協議。不受任何商品化軟體的版權制約的、全世界都能自由使用的Unix兼容產品。看硬體配置情況,一般是4個。。
⑥ linux top命令下 CPU: 35%hi 15%si hi si 異常的高有什麼優化或解決問題的方法提示嗎
inux top命令下 CPU: 35%hi 15%si hi si 異常高的解決方法:
cpu佔用率偏高,這個得看具體的負載,是哪一個程序導致的cpu偏高,並不是系統優化就可以解決的。
一些程序本來就需要佔用大量的cpu資源,比如跑密碼等,在cpu佔用率受限的情況下,程序就不能很好的完成工作。
再有一些程序本身有bug,或者存在兼容問題。wine程序的cpu佔用率總是偏高的。
系統能做的就是按照管理員的意圖分配足夠的資源或者限制。
cpulimit,這個程序可以限制指定程序的cpu佔用率,在ubuntu下,可以用apt-get命令安裝,具體使用方法可以在安裝之後man cpulimit。
linux下還可以進行磁碟配額等等限制。
⑦ Linux下如何控制進程對CPU資源的佔用呢
我的思路是 去/proc下查找每個進程目錄的信息,再計算進程的時間,隨後計算CPU的佔用率,同理控制也用這個原理,因為CPU的資源佔用率並不能直接得到