真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

linux綁核命令 linux進程綁定cpu命令

linux 查看線程綁定在哪個核心 proc

使用top命令,具體用法是 top -H,加上這個選項,top的每一行就不是顯示一個進程,而是一個線程。

創(chuàng)新互聯(lián)2013年開創(chuàng)至今,先為藍山等服務(wù)建站,藍山等地企業(yè),進行企業(yè)商務(wù)咨詢服務(wù)。為藍山企業(yè)網(wǎng)站制作PC+手機+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

使用ps命令,具體用法是 ps -xH,這樣可以查看所有存在的線程,也可以使用grep作進一步的過濾。

使用ps命令,具體用法是 ps -mq PID,這樣可以看到指定的進程產(chǎn)生的線程數(shù)目。

更進一步,其實一些系統(tǒng)監(jiān)控工具,在本質(zhì)上也是讀取的系統(tǒng)產(chǎn)生的文件罷了。

如何將一個進程(線程)綁定到一個固定的CPU

第一種:linux的shell命令行方式,命令名字為taskset。第二種就是代碼實現(xiàn)級別的了,pthread_setaffinity_np和sched_setaffinity函數(shù)接口。

第一種方式我已經(jīng)驗證過了,確實可行。同時驗證了我心中的疑問:如果將某個線程綁定到某個物理核上之后,在此線程運行結(jié)束前,會不會有別的線程被調(diào)度到此物理核上執(zhí)行? 寫了一個死循環(huán)驗證了下,發(fā)現(xiàn)綁定之后是不會調(diào)度別的線程在此核上運行的?。ㄈ庋塾^察的,時不時觀察下,沒發(fā)現(xiàn)別的線程在此核上執(zhí)行;對比了下沒有綁定的情況,會發(fā)現(xiàn)過段時間此線程就會被調(diào)度到別的核心上執(zhí)行)

此種方式有個問題,就是只有線程運行起來后才會被綁定到某個核上,不夠及時。

具體的方式為:

1.首先根據(jù)系統(tǒng)的差別運行如下安裝命令:

sudo apt-get install util-linux (Debian,Ubuntu or Linux Mint)

sudo yum install util-linux (Fedora,CentOS or RHEL)

2.相關(guān)命令的使用:

2.1 使用命令 taskset -p PID 來獲得此Process的 CPU affinity。

eg: taskset -p 2915 ------ pid 2915's current affinity mask:ff; ff=="1111 1111",沒一個1代表一個核,共8個核,能用的核數(shù)也為8個核。

2.2 使用命令 taskset -cp PID 可獲得數(shù)字形式的CPU affinity。

eg: taskset -cp 2915 ------ pid 2915's current affinity list: 0--7。

接下來為將進程pin到某個核上的命令;

2.3 taskset -p COREMASK PID

eg:taskset -p 0x11 9030 ------pid 9030's current affinity mask: ff , pid 9030's new affinity mask: 11 。意思就是將此進程綁定到了CPU core 0 and 4。

2.4 taskset -cp CORE-LIST PID

eg:taskset -cp 0,4 9030 ------the same as below.

With "-c" option, you can specify a list of numeric CPU core IDs separated by commas, or even include ranges (e.g., 0,2,5,6-10).

2.5 taskset COREMASK EXECUTABLE

eg: taskset 0x1 xxxx -----"xxxx" represented the name of one program.

另外:參考文章最后的位置說到,綁定到此物理核之后,別的進程(線程)還可以調(diào)度到此核上執(zhí)行,但是沒說綁定的這個線程沒執(zhí)行完之前是否會被別的線程擠掉。根據(jù)我的觀察是不會被擠掉,這我在文章的開頭也有提到。

Linux如何將進程綁定運行在指定CPU上

綁定cpu方式:

c語言:

sched_setaffinity(0, sizeof(mask), mask)

shell命令:

在grup啟動時傳給內(nèi)核參數(shù): isolcpus=2-15, 這里表示隔離第3到16個CPU, Linux程序只跑在第一和第二個CPU上, 空閑的CPU我們可以指定跑進程了.

這是內(nèi)核文檔里對內(nèi)核參數(shù)的解釋:

isolcpus= [KNL,SMP] Isolate CPUs from the general scheduler.

Format:

cpu number,...,cpu number

or

cpu number-cpu number

(must be a positive range in ascending order)

or a mixture

cpu number,...,cpu number-cpu number

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.

cpu number 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 命令詳解

功能說明:設(shè)置優(yōu)先權(quán)。

語法:nice [-n 優(yōu)先等級][--help][--version][執(zhí)行指令]

補充說明:nice指令可以改變程序執(zhí)行的優(yōu)先權(quán)等級。

參數(shù):-n優(yōu)先等級或-優(yōu)先等級或--adjustment=優(yōu)先等級  設(shè)置欲執(zhí)行的指令的優(yōu)先權(quán)等級。等級的范圍從-20-19,其中-20最高,19最低,只有系統(tǒng)管理者可以設(shè)置負數(shù)的等級。

--help  在線幫助。

   --version  顯示版本信息。

linux renice 命令詳解

功能說明:調(diào)整優(yōu)先權(quán)。

語法:renice [優(yōu)先等級][-g 程序群組名稱...][-p 程序識別碼...][-u 用戶名稱...]

補充說明:renice指令可重新調(diào)整程序執(zhí)行的優(yōu)先權(quán)等級。預(yù)設(shè)是以程序識別碼指定程序調(diào)整其優(yōu)先權(quán),您亦可以指定程序群組或用戶名稱調(diào)整優(yōu)先權(quán)等級,并修改所有隸屬于該程序群組或用戶的程序的優(yōu)先權(quán)。等級范圍從-20--19,只有系統(tǒng)管理者可以改變其他用戶程序的優(yōu)先權(quán),也僅有系統(tǒng)管理者可以設(shè)置負數(shù)等級。

參數(shù):

-g 程序群組名稱  使用程序群組名稱,修改所有隸屬于該程序群組的程序的優(yōu)先權(quán)。

-p 程序識別碼  改變該程序的優(yōu)先權(quán)等級,此參數(shù)為預(yù)設(shè)值。

-u 用戶名稱  指定用戶名稱,修改所有隸屬于該用戶的程序的優(yōu)先權(quán)。

taskset設(shè)定cpu親和力,cpu親和力是指

CPU調(diào)度程序?qū)傩躁P(guān)聯(lián)性是“鎖定”一個進程,使他只能在一個或幾個cpu線程上運行。對于一個給定的系統(tǒng)上設(shè)置的cpu。給定CPU親和力和進程不會運行在任何其他CPU。注意,Linux調(diào)度器還支持自然CPU關(guān)聯(lián):(不能讓這個cpu只為這一個進程服務(wù))

這里要注意的是我們可以把某個程序限定在某一些CPU上運行,但這并不意味著該程序可以獨占這些CPU,其實其他程序還是可以利用這些CPU運行。如果要精確控制CPU,taskset就略嫌不足,cpuset才是可以

-a, --all-tasks 操作所有的任務(wù)線程-p, --pid 操作已存在的pid-c, --cpu-list 通過列表顯示方式設(shè)置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上后臺執(zhí)行指定的perl程序

taskset –c 1 nohup perl pi.pl


分享名稱:linux綁核命令 linux進程綁定cpu命令
文章出自:http://weahome.cn/article/dooceos.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部