1. 程式人生 > >linux進程cpu資源分配命令nice,renice,taskset

linux進程cpu資源分配命令nice,renice,taskset

gpo comm local 簡寫 bsp launch 名詞 cif ffi

進程cpu資源分配就是指進程的優先權(priority)。優先權高的進程有優先執行權利。配置進程優先權對多任務環境的linux很有用,可以改善系統性能。還可以把進程運行到指定的CPU上,這樣一來,把不重要的進程安排到某個CPU,可以大大改善系統整體性能。


一、先看系統進程:



PR 就是 Priority 的簡寫,而 NI 是 nice 的簡寫。這兩個值決定了PR的值,PR越小,進程優先權就越高,就越“優先執行”。換算公式為:PR(new) = PR(old) + NI
---------------------------------------------------------------------------
二、修改進程優先級的命令主要有兩個:nice,renice

1

、一開始執行程序就指定nice值:nice

Java代碼

  1. nice -n -5 /usr/local/mysql/bin/mysqld_safe &


linux nice 命令詳解

  功能說明:設置優先權。

  語  法:nice [-n <優先等級>][--help][--version][執行指令]

  補充說明:nice指令可以改變程序執行的優先權等級。

  參  數:-n<優先等級>或-<優先等級>或--adjustment=<優先等級>  設置欲執行的指令的優先權等級。等級的範圍從-20-19,其中-20最高,19最低,只有系統管理者可以設置負數的等級。
   --help  在線幫助。
   --version  顯示版本信息。
---------------------------------------------------------------------------
2.1

、調整已存在進程的nice:renice

Java代碼

  1. renice -5 -p 5200
  2. #PID為5200的進程nice設為-5


linux renice 命令詳解

  功能說明:調整優先權。

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

  補充說明:renice指令可重新調整程序執行的優先權等級。預設是以程序識別碼指定程序調整其優先權,您亦可以指定程序群組或用戶名稱調整優先權等級,並修改所有隸屬於該程序群組或用戶的程序的優先權。等級範圍從-20--19,只有系統管理者可以改變其他用戶程序的優先權,也僅有系統管理者可以設置負數等級。
  參  數:
  -g <程序群組名稱>  使用程序群組名稱,修改所有隸屬於該程序群組的程序的優先權。
  -p <程序識別碼>  改變該程序的優先權等級,此參數為預設值。
  -u <用戶名稱>  指定用戶名稱,修改所有隸屬於該用戶的程序的優先權。

2.2

、也可以用top命令更改已存在進程的nice:

Java代碼

  1. top
  2. #進入top後按"r"-->輸入進程PID-->輸入nice值




---------------------------------------------------------------------------
三、把進程運行到指定CPU(即修改進程的"CPU親和性"):taskset
兩個名詞
SMP (Symmetrical Multi-Processing):指在一個計算機上匯集了一組處理器(多CPU),各CPU之間共享內存子系統以及總線結構。 [更多...]
CPU affinity:中文喚作“CPU親和性”,是指在CMP架構下,能夠將一個或多個進程綁定到一個或多個處理器上運行。[更多...]

請先確定你的cpu核心及命名(例如四個核心:0,1,2,3):cat /proc/cpuinfo

Java代碼

  1. taskset -cp 1 5200
  2. #把PID為5200的進程運行到CPU#1上
  3. #也可以在啟動進程時指定:
  4. taskset -c 1 /etc/init.d/mysql start


linux taskset命令詳解

SYNOPSIS
taskset [options] [mask | list ] [pid | command [arg]...]
OPTIONS
-p, --pid
operate on an existing PID and not launch a new task
-c, --cpu-list
specifiy a numerical list of processors instead of a bitmask.
The list may contain multiple items, separated by comma, and
ranges. For example, 0,5,7,9-11.
-h, --help
display usage information and exit
-V, --version
output version information and exit

linux進程cpu資源分配命令nice,renice,taskset