linux中的nice用法,Linux nice及renice命令使用

 2023-12-06 阅读 31 评论 0

摘要:Linux nice及renice命令使用 引言: linux內核是一個了不起的馬戲表演者,它在進程和系統資源之間小心地玩著雜耍,并保持系統的正常運轉。同時,內核也很公平,它將資源公平地分配給各個進程。但是,如果用戶需要給一個重要進程提高優先

Linux nice及renice命令使用

引言: linux內核是一個了不起的馬戲表演者,它在進程和系統資源之間小心地玩著雜耍,并保持系統的正常運轉。同時,內核也很公平,它將資源公平地分配給各個進程。但是,如果用戶需要給一個重要進程提高優先級、或是降低優先級,該怎么辦呢?答案是需要由用戶來為內核制定進程的優先級。這里對nice及renice命令做一個基本的介紹。


一、nice命令

1.1、基本介紹

這里寫圖片描述
圖1、nice命令man手冊截圖(不完整)

??nice命令可以修改進程的優先級,進而調整進程調度。nice值的范圍是[-20, 19], -20表示進程的最高優先級,19表示進程的最低優先級。Linux進程的默認nice值為0。使用nice可調整進程的優先級,這樣調度器就會依據進程優先級,為其分配CPU資源。

1)、sleep 200&后,ps -el | grep sleep抓取,無nice命令,優先級數值為0

這里寫圖片描述
圖2、進程優先級NI默認值為0

linux中的nice用法。

2)、nice sleep 200&后,ps -el | grep sleep抓取,優先級NI數值為10

這里寫圖片描述
圖3、nice命令將NI默認調整為10

3)、nice -N sleep 200&,即在默認值0基礎上加N,ps -el | grep sleep抓取

這里寫圖片描述
圖4、非管理員可將NI值調整為0-19任意值

4)、nice –N sleep 200&,僅管理員可在默認值0基礎上加 -N,ps -el | grep sleep抓取

shell中read的用法。

這里寫圖片描述

這里寫圖片描述
圖5、僅管理員可以拉高優先級

1.2、使用場景

??在實際應用中,如果要運行一個CPU密集型程序,最好通過nice命令來啟動它,這樣可以保證其他進程獲得更高的優先級,即使服務器或臺式機在負載很重的情況下, 也可以快速響應。

1.3、測試實例

??下面的測試代碼,是一個完全搶占CPU的程序,直接啟動或nice調整優先級后啟動,使用top觀測其CPU占有率,驗證結論。因為筆記本電腦是四個CPU,需要拉起來至少五個進程,才可以看到效果。

 /********************************************
*內容:模擬一個一直搶占CPU的進程,測試nice命令
*時間:2018.03.19
*問題:
**********************************************/#include<stdio.h>int main(void)
{
    while(1);
    return 0;}

shell交互式命令、

這里寫圖片描述
圖6、NI值高(優先級低)的進程CPU占有率低


二、renice命令

2.1、基本介紹

這里寫圖片描述
圖7、renice命令man手冊截圖(不完整)

??renice命令是與nice關聯的一個命令,由re兩個字母就知道可以重新調整進程執行的優先級,可以指定群組或者用戶名調整優先級等級,并修改隸屬于該群組或者用戶的所有程序優先級。等級范圍為[-20,19]。同樣僅系統管理員可以拉高優先級。nice在進程拉起時調整,renice在進程執行時調整。

2.2、使用場景

??一個緊急進程,需要更多CPU資源時,可以拉低之前運行進程的優先級。

2.3、測試實例

shell切換用戶執行腳本。

這里寫圖片描述
圖8、renice調整優先級

三、其他與進程優先級相關的系統調用

??linux下與進程優先級相關的系統調用,均在/usr/src/linux-headers-4.4.0-31/include/linux,sched.h文件夾內。包括內容有:

nice()、設置進程的優先級
sched_setscheduler()設置進程調度策略
sched_getscheduler()獲取進程調度策略 等等


參考資料:
1、linux man手冊
2、公眾號:Linux中國:《使用nice、cpulimit和cgroup限制cpu占用率》

糾錯與建議
郵箱:db_hebut@163.com


版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://808629.com/193496.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 86后生记录生活 Inc. 保留所有权利。

底部版权信息