方法之一:
top -p `pidof 程序名稱`
方法之二:
top -p `ps h -o pid -c 程序名稱`
如果還要檢視此程序下的各執行緒,可用如下:
top -h -p `pidof process`
----------------------------------------------我是分割線------------------------------------------
top實時顯示程序在那個cpu上:
(1)top
(2)按 "1" 實時顯示cpu資訊
(3)按 "f" 進入顯示配置檔案設定
(4)選中 "p", 空格或者"d", q或者esc退出在最後顯示cpu
----------------------------------------------我是分割線--------------------------------------------
繫結cpu方式:
c語言:
sched_setaffinity(0, sizeof(mask), &mask)shell命令:
在grup啟動時傳給核心引數: isolcpus=2-15, 這裡表示隔離第3到16個cpu, linux程式只跑在第一和第二個cpu上, 空閒的cpu我們可以指定跑程序了.
這是核心文件裡對核心引數的解釋:
isolcpus=
[knl,smp] isolate cpus from the general scheduler.
format:
,...,or
-(must be a positive range in ascending order)
or a mixture
,...,-
this
option can be used to specify one or more cpus
to isolate from the general smp balancing and scheduling
algorithms. you can move a process onto or off an
"isolated" cpu via the cpu affinity syscalls or cpuset.
begins at 0 and the maximum value is
"number of cpus in system - 1"
.this
option is the preferred way to isolate cpus. the
alternative -
- manually setting the cpu mask
of all
tasks in the system -
- can cause problems and
suboptimal load balancer performance.
linux nice 命令詳解
功能說明:設定優先權。
語 法:nice [-n 《優先等級》][--help][--version][執行指令]
補充說明:nice指令可以改變程式執行的優先權等級。
參 數:-n《優先等級》或-《優先等級》或--adjustment=《優先等級》 設定欲執行的指令的優先權等級。等級的範圍從-20-19,其中-20最高,19最低,只有系統管理者可以設定負數的等級。
--version 顯示版本資訊。
linux renice 命令詳解
功能說明:調整優先權。
語 法:renice [優先等級][-g 《程式群組名稱》...][-p 《程式識別碼》...][-u 《使用者名稱》...]
補充說明:renice指令可重新調整程式執行的優先權等級。預設是以程式識別碼指定程式調整其優先權,您亦可以指定程式群組或使用者名稱調整優先權等級,並修改所有隸屬於該程式群組或使用者的程式的優先權。等級範圍從-20--19,只有系統管理者可以改變其他使用者程式的優先權,也僅有系統管理者可以設定負數等級。
參 數:
-g 《程式群組名稱》 使用程式群組名稱,修改所有隸屬於該程式群組的程式的優先權。
-p 《程式識別碼》 改變該程式的優先權等級,此引數為預設值。
-u 《使用者名稱》 指定使用者名稱,修改所有隸屬於該使用者的程式的優先權。
taskset設定cpu親和力,cpu親和力是指
cpu排程程式屬性關聯性是「鎖定」乙個程序,使他只能在乙個或幾個cpu執行緒上執行。 對於乙個給定的系統上設定的cpu。給定cpu親和力和程序不會執行在任何其他cpu。 注意,linux排程器還支援自然cpu關聯:(不能讓這個cpu只為這乙個程序服務)
這裡要注意的是我們可以把某個程式限定在某一些cpu上執行,但這並不意味著該程式可以獨佔這些cpu,其實其他程式還是可以利用這些cpu執行。如果要精確控制cpu,taskset就略嫌不足,cpuset才是可以
-a, --all-tasks 操作所有的任務執行緒-p, --pid 操作已存在的pid-c, --cpu-list 通過列表顯示方式設定cpu
(1)指定1和2號cpu執行25718執行緒的程式
taskset -cp 1,2 25718
(2),讓某程式執行在指定的cpu上 taskset -c 1,2,4-7 tar jcf test.tar.gz test
(3)指定在1號cpu上後台執行指定的perl程式
taskset –c 1 nohup perl pi.pl &
---------------------------------------------我是分割線-------------------------------
將某程式繫結cpu:
c語言可以指定程序或者執行緒繫結
shell可以先進/var/run/**.pid取得程序pid,然後繫結程序到cpu
或者直接使用taskset –c 繫結指定程式名
Linux程序或執行緒繫結到CPU
linux提供乙個介面,可以將程序繫結到特定的cpu include int sched setaffinity pid t pid,size t cpusetsize,const cpu set t mask int sched getaffinity pid t pid,size t cpuse...
redis程序繫結指定的CPU核
0 檢視某服務的pid ps aux grep redis1 顯示程序執行的cpu 命令 taskset p 21184顯示結果 pid 21184 s current affinity mask ffffff 注 21184是redis server執行的pid 顯示結果的ffffff實際上是二進...
使用cgroup繫結程序到指定核
cgcreate g cpuset test cgset r cpuset.cpus 0test cgset r cpuset.mems 0test mems必須設定 cgexec g cpuset sunwg g1 python test.py 注 1.檢視linux文件發現cpuset子系統是有...