linux 优先级必须为整数,进程友好性(优先级)设置对Linux没有影响
您看到的行為幾乎可以肯定是因為Linux 2.6.38(2010年)中添加了自動組功能.據(jù)推測,當(dāng)您描述運行這兩個命令時,它們在不同的終端窗口中運行.如果你在同一個終端窗口中運行它們,那么你應(yīng)該看到nice值有效.這個答案的其余部分詳細闡述了這個故事.
內(nèi)核提供了一種稱為自動分組的功能,可以在多進程,cpu密集型工作負載(如構(gòu)建具有大量并行構(gòu)建過程的Linux內(nèi)核(即make(1)-j標(biāo)志)的情況下提高交互式桌面性能.
創(chuàng)建新會話時會創(chuàng)建新的自動組
通過setsid(2);例如,當(dāng)啟動新的終端窗口時會發(fā)生這種情況. fork(2)創(chuàng)建的新進程繼承了它
父母的自動組成員資格.因此,一個過程中的所有過程
session是同一個autogroup的成員.
啟用自動分組時,自動組合的所有成員
被放置在相同的內(nèi)核調(diào)度程序“任務(wù)組”中. Linux內(nèi)核調(diào)度程序采用一種均衡分布的算法
cpu跨任務(wù)組循環(huán).可以通過以下示例描述此對交互式桌面性能的好處.
假設(shè)有兩個自動組競爭同一個cpu
(即,假定單個cpu系統(tǒng)或使用任務(wù)集(1)
將所有進程限制在SMP系統(tǒng)上的同一cpu中).
第一組包含來自內(nèi)核的十個cpu綁定進程
build以make -j10開頭.另一個包含一個
cpu綁定過程:視頻播放器.自動分組的效果是
這兩組將分別接收一半的cpu周期.那是,
視頻播放器將獲得50%的cpu周期,而不是
只有9%的周期,這可能會導(dǎo)致視頻質(zhì)量下降
回放. SMP系統(tǒng)的情況比較復(fù)雜,但是
一般效果是相同的:調(diào)度程序分配cpu周期
跨任務(wù)組,以便包含大的自動組
cpu綁定進程的數(shù)量最終不會占用cpu周期
以犧牲系統(tǒng)上的其他工作為代價.
漂亮的價值和團隊安排
在調(diào)度非實時進程(例如,那些已調(diào)度的進程)時
在默認的SCHED_OTHER政策下),
調(diào)度程序采用稱為“組調(diào)度”的技術(shù),在該技術(shù)下,線程被安排在“任務(wù)組”中.
任務(wù)組是在各種情況下形成的,相關(guān)案例在這里是自動分組.
如果啟用了自動分組,那么所有線程都是
(隱含地)放在一個自動組中(即同一個會話,如
由setsid(2)創(chuàng)建)形成一個任務(wù)組.每個新的自動組都是
因此是一個單獨的任務(wù)組.
在組調(diào)度下,線程的nice值會產(chǎn)生效果
調(diào)度決策僅相對于同一個中的其他線程
任務(wù)組.這有一些令人驚訝的后果
UNIX系統(tǒng)上很好的值的傳統(tǒng)語義.特別是,如果啟用了自動分組(這是各種Linux發(fā)行版中的默認設(shè)置),那么
在一個過程中使用nice(1)會產(chǎn)生影響
僅用于相對于在其中執(zhí)行的其他進程的調(diào)度
相同的會話(通常:相同的終端窗口).
相反,對于(例如)鞋底的兩個過程
不同會話中的cpu綁定進程(例如,不同的終端
windows,每個作業(yè)都綁定到不同的autogroup),
在其中一個會話中修改進程的nice值
對調(diào)度程序相對于調(diào)度的決策沒有影響
在另一個會話中處理.這可能是您看到的情景,但您沒有明確提到使用兩個終端窗口.
如果要防止自動分組干擾此處所述的傳統(tǒng)良好行為,可以禁用該功能
echo 0 > /proc/sys/kernel/sched_autogroup_enabled
請注意,這也會導(dǎo)致禁用自動組功能旨在提供的桌面交互性的好處(參見上文).
自動組很好的價值
可以通過查看進程的自動組成員資格
文件/ proc / [pid] / autogroup:
$cat /proc/1/autogroup
/autogroup-1 nice 0
此文件還可用于修改分配的cpu帶寬
到一個自動組.這是通過在“好”中寫一個數(shù)字來完成的
范圍到文件以設(shè)置自動組的好值.允許的
范圍從19(低優(yōu)先級)到-20(高優(yōu)先級).
autogroup nice設(shè)置與進程具有相同的含義很好的價值,但適用于cpu周期的分配autogroup作為一個整體,基于其他的相對好的值autogroups.對于自動組內(nèi)的進程,cpu會循環(huán)它接收將是自動組的良好價值的產(chǎn)物(比較到其他autogroup)和過程的好價值(與…相比)同一自動組中的其他進程).
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的linux 优先级必须为整数,进程友好性(优先级)设置对Linux没有影响的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 京东广告联盟android,京东APP联
- 下一篇: linux编译c 优化,Linux编译选