新聞中心
在Linux系統(tǒng)中,每個(gè)正在執(zhí)行的進(jìn)程都有一個(gè)nice值,它的作用是調(diào)整進(jìn)程在CPU中被調(diào)度的優(yōu)先級。在本文中,我們將探討進(jìn)程nice值的作用,以及如何調(diào)整它來優(yōu)化系統(tǒng)性能。

按需求定制設(shè)計(jì)可以根據(jù)自己的需求進(jìn)行定制,做網(wǎng)站、成都網(wǎng)站制作構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司做網(wǎng)站、成都網(wǎng)站制作的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義
進(jìn)程nice值的基本概念
linux進(jìn)程nice值是一個(gè)整數(shù)值,通常范圍在-20到20之間。正值表示較低的優(yōu)先級,而負(fù)值表示較高的優(yōu)先級。默認(rèn)情況下,所有進(jìn)程都有一個(gè)0的nice值,表示正常優(yōu)先級。
在Linux系統(tǒng)中,當(dāng)CPU空閑時(shí),調(diào)度程序會尋找可運(yùn)行進(jìn)程,選擇優(yōu)先級更高(nice值更低)的進(jìn)程運(yùn)行。如果在CPU使用率高的情況下,CPU會更頻繁地切換進(jìn)程,以便更多的進(jìn)程能夠接收到處理時(shí)間。
調(diào)整進(jìn)程優(yōu)先級的原因主要是為了在一些緊急的、重要的任務(wù)需要立即完成時(shí)分配更多的CPU時(shí)間片,同時(shí)避免一些低優(yōu)先級進(jìn)程的浪費(fèi)。例如,如果一個(gè)進(jìn)程負(fù)責(zé)處理用戶請求,那么它需要比其他進(jìn)程具有更高的優(yōu)先級。
調(diào)整nice值
在Linux系統(tǒng)中,可以使用nice或renice命令來調(diào)整進(jìn)程的優(yōu)先級:
– 使用nice命令調(diào)整進(jìn)程nice值,例如,將進(jìn)程pid的nice值設(shè)置為10:
nice -n 10 pid
– 使用renice命令更改已有進(jìn)程的nice值,例如,將進(jìn)程pid的nice值增加到5:
renice 5 pid
需要注意的是,這些命令只對普通用戶進(jìn)程起作用,無法對實(shí)時(shí)進(jìn)程和內(nèi)核線程進(jìn)行調(diào)度優(yōu)化。
優(yōu)先級類別
Linux優(yōu)先級分為4種類別,可通過sysctl命令調(diào)整。默認(rèn)情況下,Linux系統(tǒng)啟用的多進(jìn)程優(yōu)化策略為進(jìn)程時(shí)間片最小化(即,進(jìn)程的優(yōu)先級越高,它的時(shí)間片就越小,因此需要更頻繁地執(zhí)行),其中,四個(gè)進(jìn)程優(yōu)先級類別為:
1.實(shí)時(shí)類(RT)
該類別為實(shí)時(shí)進(jìn)程提供更高優(yōu)先級。當(dāng)需要立即完成某些任務(wù)時(shí),可以設(shè)置進(jìn)程為實(shí)時(shí)優(yōu)先級。
2.實(shí)時(shí)優(yōu)先級(FIFO)
該類別為其他實(shí)時(shí)進(jìn)程提供高優(yōu)先級。與實(shí)時(shí)類進(jìn)程相比,實(shí)時(shí)優(yōu)先級進(jìn)程需要分配的時(shí)間更少。
3.普通類(Normal)
大多數(shù)用戶進(jìn)程屬于此類別。這些進(jìn)程的優(yōu)先級由nice值和其他參數(shù)決定。
4.Idle類
該類別為睡眠進(jìn)程提供優(yōu)先級,這些進(jìn)程可以執(zhí)行更低優(yōu)先級,從而降低整個(gè)系統(tǒng)的負(fù)載。
信號
Linux系統(tǒng)中還有一些信號,可以通過kill命令或其他工具向進(jìn)程發(fā)送。一些信號可以調(diào)整進(jìn)程的優(yōu)先級,例如:
– SIGSTOP(stop)
該信號可用于暫停任何進(jìn)程。進(jìn)程的優(yōu)先級將被暫停,并在收到SIGCONT(continue)信號后恢復(fù)。
– SIGCONT(continue)
該信號可用于繼續(xù)被暫停的進(jìn)程。
– SIGTERM(terminate)
該信號可用于請求進(jìn)程終止,進(jìn)程的優(yōu)先級將被調(diào)整為更低。
本文討論了。通過設(shè)置nice值和調(diào)整優(yōu)先級類別,可以改善系統(tǒng)性能和響應(yīng)度。合理使用信號也可以有效管理進(jìn)程的優(yōu)先級。理解這些基本概念和方法,將使管理員可以更好地調(diào)整和管理系統(tǒng)中的進(jìn)程。
相關(guān)問題拓展閱讀:
- linux線程怎樣調(diào)整nice值
- Linux下程序運(yùn)行期CPU nice很高,怎么破
- linux 調(diào)整CPU程序調(diào)度的幾種方法
linux線程怎樣調(diào)整nice值
nice()系統(tǒng)調(diào)用,改變進(jìn)程執(zhí)行優(yōu)先順序
Linux下程序運(yùn)行期CPU nice很高,怎么破
關(guān)鍵是nice高的廳罩話,是否是對CPU利用不充分的標(biāo)志,這個(gè)查了一些資料,沒太理解到。
us + ni 才是扮知鬧真正 user mode 占用的時(shí)間,你機(jī)器的 cpu 幾乎是猛此滿負(fù)載運(yùn)行,而且時(shí)間基本都是消耗在了 user mode 中。
linux 調(diào)整CPU程序調(diào)度的幾種方法
一,使用taskset充分利用多核cpu,讓cpu的使用率均衡到每個(gè)cpu上
#taskset
-p, 設(shè)定一個(gè)已存在的pid,而不是重新開啟一個(gè)新任務(wù)
-c, 指定一個(gè)處理,可以指定蠢族升多個(gè),以逗號分隔,也可指定范圍,如:2,4,5,6-8。
1,切換某個(gè)進(jìn)程到指定的cpu上
taskset -cp
2,讓某程序運(yùn)行在指定的cpu上
taskset -c 1,2,4-7 tar jcf test.tar.gz test
需要注意的是,taskset -cp在設(shè)定一個(gè)已經(jīng)存在的pid時(shí),子進(jìn)程并不會繼承父進(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)先級
格式:nice 命令
nice 指令可以改變程序執(zhí)行的優(yōu)先權(quán)等級。指令讓使用者在執(zhí)行程序時(shí),指定一個(gè)優(yōu)先等級,稱之為 nice 值。
這個(gè)數(shù)值從更高優(yōu)先級的-20到更低優(yōu)先級的19。負(fù)數(shù)值只有 root 才有權(quán)力使。
一般使用者,也可使用 nice 指令來做執(zhí)行程序的優(yōu)先級管理,但只能將nice值越調(diào)越高。
可以通過二種方式來給某個(gè)程序設(shè)定nice值:
1,開始執(zhí)行程序時(shí)給定一個(gè)nice值,用nice命令
2,調(diào)整某個(gè)運(yùn)行中程序的PID的nice值,用renice命令
通常通過調(diào)高nice值來備份,為的是不占用非常多的系統(tǒng)資源。
例:
nice -n 10 tar zcf test.tar.gz test
由nice啟動(dòng)的程序,其子進(jìn)程會繼承父進(jìn)程的nice值。
查看nice值
# nice -n -6 vim test.txt &
# ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTYTIME CMD
4 S0 –wait pts/:00:00 bash
4 T6 –finish pts/:00:00 vim
renice調(diào)整運(yùn)行中程序的nice值
格式:renice PID
三,使用ulimit限制cpu占用時(shí)間
注意,ulimit 限制的是當(dāng)前shell進(jìn)程以及其派生的子進(jìn)程。因此可以在腳本中調(diào)用ulimit來限制cpu使用時(shí)間。
例如,限制tar的cpu占用時(shí)間,單位秒。
# cat limit_cpu.sh
ulimit -SHt 100
tar test.tar.gz test
如果tar占用時(shí)間超過了100秒,tar將會退出,這可能會導(dǎo)致打包不完全,因此不推薦使用ulimit對cpu占用時(shí)間進(jìn)行限制。
另外,通過修改系統(tǒng)的/etc/security/limits配置文件,可以針對用戶進(jìn)行限制。
四,使用程序自帶的對cpu使用調(diào)整的功能
某些程序自帶了穗橡對cpu使用調(diào)整的功能,比如nginx服務(wù)器,通過其配置文件,可以為工作進(jìn)程指定cpu,如下:
worker_processes 3;
worker_cpu_affinity0 1000;
關(guān)于linux進(jìn)程nice的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都服務(wù)器托管選創(chuàng)新互聯(lián),先上架開通再付費(fèi)。
創(chuàng)新互聯(lián)(www.cdcxhl.com)專業(yè)-網(wǎng)站建設(shè),軟件開發(fā)老牌服務(wù)商!微信小程序開發(fā),APP開發(fā),網(wǎng)站制作,網(wǎng)站營銷推廣服務(wù)眾多企業(yè)。電話:028-86922220
網(wǎng)站名稱:Linux進(jìn)程nice值的作用及調(diào)整方法 (linux進(jìn)程nice)
瀏覽地址:http://fisionsoft.com.cn/article/djohgos.html


咨詢
建站咨詢
