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

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

linux的nice命令,linux nice命令

淺析Linux下進(jìn)程的調(diào)度策略與優(yōu)先級(jí)

在 Linux 中,線程是由進(jìn)程來(lái)實(shí)現(xiàn)的,可以認(rèn)為線程就是一個(gè)輕量級(jí)的進(jìn)程,因此,線程調(diào)度是按照進(jìn)程調(diào)度的方式來(lái)進(jìn)行的。這樣設(shè)計(jì),線程調(diào)度流程可以直接復(fù)用進(jìn)程調(diào)度流程,沒(méi)必要再設(shè)計(jì)一個(gè)進(jìn)程內(nèi)的線程調(diào)度器了。

為合江等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及合江網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、合江網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

在 Linux 中,進(jìn)程調(diào)度器是基于進(jìn)程的調(diào)度策略與調(diào)度優(yōu)先級(jí)來(lái)決定調(diào)度哪個(gè)進(jìn)程運(yùn)行。

調(diào)度策略主要包括:

調(diào)度優(yōu)先級(jí)的范圍是 0~99,數(shù)值越大,表示優(yōu)先級(jí)越高。

其中,SCHED_OTHER、SCHED_IDLE、SCHED_BACH 為非實(shí)時(shí)調(diào)度策略,其調(diào)度優(yōu)先級(jí)為 0。而 SCHED_FIFO、SCHED_RR 是實(shí)時(shí)調(diào)度策略,其調(diào)度優(yōu)先級(jí)范圍為 1~99。

實(shí)時(shí)調(diào)度策略的進(jìn)程總是比非實(shí)時(shí)調(diào)度策略的進(jìn)程優(yōu)先級(jí)高。

在 Linux 內(nèi)部實(shí)現(xiàn)中,調(diào)度器會(huì)為每個(gè)可能的調(diào)度優(yōu)先級(jí)維護(hù)一個(gè)可運(yùn)行的進(jìn)程列表,以最高優(yōu)先級(jí)列表頭部的進(jìn)程作為下一次調(diào)度的進(jìn)程,所有的調(diào)度都是搶占式的,如果一個(gè)具有更高調(diào)度優(yōu)先級(jí)的進(jìn)程轉(zhuǎn)換為可運(yùn)行狀態(tài),那么當(dāng)前運(yùn)行的進(jìn)程將被強(qiáng)制進(jìn)入其等待的隊(duì)列中。

SCHED_OTHER

該調(diào)度策略是默認(rèn)的 Linux 分時(shí)調(diào)度策略,該調(diào)度策略為非實(shí)時(shí)的,其調(diào)度優(yōu)先級(jí)總是為 0。

對(duì)于該調(diào)度策略類型的進(jìn)程,調(diào)度器是基于動(dòng)態(tài)優(yōu)先級(jí)來(lái)調(diào)度的。動(dòng)態(tài)優(yōu)先級(jí)跟屬性 nice 有關(guān),nice 的值會(huì)隨著進(jìn)程的運(yùn)行時(shí)間而動(dòng)態(tài)改變,以確保所有具有 SCHED_OTHER 策略的進(jìn)程公平地得到調(diào)度。

在 Linux 中,nice 的值范圍為-20 ~ +19,默認(rèn)值為 0。nice 值越大,則優(yōu)先級(jí)越低,因此相對(duì)較低 nice 值的進(jìn)程可以獲得更多的處理器時(shí)間。

通過(guò)命令 ps -el 查看系統(tǒng)中的進(jìn)程列表,其中 NI 列就是進(jìn)程對(duì)應(yīng)的 nice 值。

使用 top 命令,看到的 NI 列也是進(jìn)程的 nice 值。

調(diào)整 nice 值,可以通過(guò) shell 命令 nice ,該命令可以按照指定的 nice 值運(yùn)行 cmd ,命令的幫助信息為:

重新調(diào)整已運(yùn)行進(jìn)程的 nice 值,可通過(guò) renice 命令實(shí)現(xiàn),命令的幫助信息為:

另外,可以執(zhí)行 top 命令,輸入 r ,根據(jù)提示輸入進(jìn)程的 pid ,再輸入 nice 數(shù)值,也可以調(diào)整進(jìn)程的 nice 值。

SCHED_FIFO

該調(diào)度策略為先入先出調(diào)度策略,簡(jiǎn)單概括,就是一旦進(jìn)程占用了 CPU,則一直運(yùn)行,直到有更高優(yōu)先級(jí)的任務(wù)搶占,或者進(jìn)程自己放棄占用 CPU。

SCHED_RR

該調(diào)度策略為時(shí)間片輪轉(zhuǎn)調(diào)度策略,該調(diào)度策略是基于 SCHED_FIFO 策略的演進(jìn),其在每個(gè)進(jìn)程上增加一個(gè)時(shí)間片限制,當(dāng)時(shí)間片使用完成后,調(diào)度器將該進(jìn)程置于隊(duì)列的尾端,放在尾端保證了所有具有相同調(diào)度優(yōu)先級(jí)的進(jìn)程的調(diào)度公平。

使用 top 命令,如果 PR 列的值為 RT ,則說(shuō)明該進(jìn)程采用的是實(shí)時(shí)調(diào)度策略,其調(diào)度策略為 SCHED_FIFO 或者 SCHED_RR,而對(duì)于非實(shí)時(shí)調(diào)度策略的進(jìn)程,該列的值為 NI + 20 。

可以通過(guò)命令 ps -eo state,uid,pid,ppid,rtprio,time,comm 來(lái)查看進(jìn)程對(duì)應(yīng)的實(shí)時(shí)優(yōu)先級(jí),實(shí)時(shí)優(yōu)先級(jí)位于 RTPRIO 列下,如果進(jìn)程對(duì)應(yīng)的列顯示為 - ,說(shuō)明該進(jìn)程不是實(shí)時(shí)進(jìn)程。

chrt 命令可以用來(lái)很簡(jiǎn)單地更改進(jìn)程的調(diào)度策略與調(diào)度優(yōu)先級(jí)。在 Linux 下查看 chrt 命令的幫助信息:

比如,獲取某個(gè)進(jìn)程的調(diào)度策略,使用如下命令:

在比如,設(shè)置某個(gè)進(jìn)程的調(diào)度策略為 SCHED_FIFO,調(diào)度優(yōu)先級(jí)為 70,使用如下命令:

Linux如何將進(jìn)程綁定運(yùn)行在指定CPU上

綁定cpu方式:

c語(yǔ)言:

sched_setaffinity(0, sizeof(mask), mask)

shell命令:

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

這是內(nèi)核文檔里對(duì)內(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 命令詳解

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

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

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

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

--help  在線幫助。

   --version  顯示版本信息。

linux renice 命令詳解

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

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

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

參數(shù):

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

-p 程序識(shí)別碼  改變?cè)摮绦虻膬?yōu)先權(quán)等級(jí),此參數(shù)為預(yù)設(shè)值。

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

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

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

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

-a, --all-tasks 操作所有的任務(wù)線程-p, --pid 操作已存在的pid-c, --cpu-list 通過(guò)列表顯示方式設(shè)置CPU

(1)指定1和2號(hào)cpu運(yùn)行25718線程的程序

taskset -cp 1,2 25718

(2),讓某程序運(yùn)行在指定的cpu上 taskset -c 1,2,4-7 tar jcf test.tar.gz test

(3)指定在1號(hào)CPU上后臺(tái)執(zhí)行指定的perl程序

taskset –c 1 nohup perl pi.pl

Linux里面nice值作用是什么?

NICE值. nice值應(yīng)該是熟悉Linux/UNIX的人很了解的概念了,我們都知它是反應(yīng)一個(gè)進(jìn)程“優(yōu)先級(jí)”狀態(tài)的值,其取值范圍是-20至19,一共40個(gè)級(jí)別。. 這個(gè)值越小,表示進(jìn)程”優(yōu)先級(jí)”越高,而值越大“優(yōu)先級(jí)”越低。. 我們可以通過(guò)nice命令來(lái)對(duì)一個(gè)將要執(zhí)行的命令進(jìn)行nice值設(shè)置,方法是:. [root@zorrozou-pc0 zorro]# nice -n 10 bash. 這樣我就又打開(kāi)了一個(gè)bash,并且其nice值設(shè)置為10,而默認(rèn)情況下,進(jìn)程的優(yōu)先級(jí)應(yīng)該是從父進(jìn)程繼承來(lái)的,這個(gè)值一般是0。. 我們可以通過(guò)nice命令直接查看到當(dāng)前shell的nice值.

linux 調(diào)整CPU程序調(diào)度的幾種方法

一,使用taskset充分利用多核cpu,讓cpu的使用率均衡到每個(gè)cpu上

#taskset

-p, 設(shè)定一個(gè)已存在的pid,而不是重新開(kāi)啟一個(gè)新任務(wù)

-c, 指定一個(gè)處理,可以指定多個(gè),以逗號(hào)分隔,也可指定范圍,如:2,4,5,6-8。

1,切換某個(gè)進(jìn)程到指定的cpu上

taskset -cp 3 13290

2,讓某程序運(yùn)行在指定的cpu上

taskset -c 1,2,4-7 tar jcf test.tar.gz test

需要注意的是,taskset -cp 3 13290在設(shè)定一個(gè)已經(jīng)存在的pid時(shí),子進(jìn)程并不會(huì)繼承父進(jìn)程的,

因此像tar zcf xxx.tar.gz xxx這樣的命令,最好在啟動(dòng)時(shí)指定cpu,如果在已經(jīng)啟動(dòng)的情況下,則需要指定tar調(diào)用的gzip進(jìn)程。

二,使用nice和renice設(shè)置程序執(zhí)行的優(yōu)先級(jí)

格式:nice [-n 數(shù)值] 命令

nice 指令可以改變程序執(zhí)行的優(yōu)先權(quán)等級(jí)。指令讓使用者在執(zhí)行程序時(shí),指定一個(gè)優(yōu)先等級(jí),稱之為 nice 值。

這個(gè)數(shù)值從最高優(yōu)先級(jí)的-20到最低優(yōu)先級(jí)的19。負(fù)數(shù)值只有 root 才有權(quán)力使。

一般使用者,也可使用 nice 指令來(lái)做執(zhí)行程序的優(yōu)先級(jí)管理,但只能將nice值越調(diào)越高。

可以通過(guò)二種方式來(lái)給某個(gè)程序設(shè)定nice值:

1,開(kāi)始執(zhí)行程序時(shí)給定一個(gè)nice值,用nice命令

2,調(diào)整某個(gè)運(yùn)行中程序的PID的nice值,用renice命令

通常通過(guò)調(diào)高nice值來(lái)備份,為的是不占用非常多的系統(tǒng)資源。

例:

nice -n 10 tar zcf test.tar.gz test

由nice啟動(dòng)的程序,其子進(jìn)程會(huì)繼承父進(jìn)程的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調(diào)整運(yùn)行中程序的nice值

格式:renice [nice值] PID

三,使用ulimit限制cpu占用時(shí)間

注意,ulimit 限制的是當(dāng)前shell進(jìn)程以及其派生的子進(jìn)程。因此可以在腳本中調(diào)用ulimit來(lái)限制cpu使用時(shí)間。

例如,限制tar的cpu占用時(shí)間,單位秒。

# cat limit_cpu.sh

ulimit -SHt 100

tar test.tar.gz test

如果tar占用時(shí)間超過(guò)了100秒,tar將會(huì)退出,這可能會(huì)導(dǎo)致打包不完全,因此不推薦使用ulimit對(duì)cpu占用時(shí)間進(jìn)行限制。

另外,通過(guò)修改系統(tǒng)的/etc/security/limits配置文件,可以針對(duì)用戶進(jìn)行限制。

四,使用程序自帶的對(duì)cpu使用調(diào)整的功能

某些程序自帶了對(duì)cpu使用調(diào)整的功能,比如nginx服務(wù)器,通過(guò)其配置文件,可以為工作進(jìn)程指定cpu,如下:

worker_processes 3;

worker_cpu_affinity 0001 0010 0100 1000;

這里0001 0010 0100 1000是掩碼,分別代表第1、2、3、4顆cpu核心,這就使得cpu的使用比較平均到每個(gè)核心上。

請(qǐng)問(wèn)Linux里面的nice指令和renice指令的作用有何不同?

nice是在進(jìn)程還沒(méi)有運(yùn)行的時(shí)候運(yùn)行一個(gè)進(jìn)程,指定優(yōu)先級(jí)。

renice是改變已運(yùn)行進(jìn)程的優(yōu)先級(jí)。


網(wǎng)站欄目:linux的nice命令,linux nice命令
URL鏈接:http://weahome.cn/article/phdjpo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部