Linux是一個多用戶、多任務的操作系統,系統中通常運行著非常多的進程。哪些進程先運行,哪些進程后運行,就由進程優先級來控制
PR 優先級,數值越小優先級越高。
NI 優先級,數值越小優先級越高。
問題:這兩個數值是在哪里看到的?
答:
① 調整==正在運行==進程的優先級(renice)
1)使用top按"r"來調整
如果要改變某個進程的優先級,就要利用 "r" 交互命令。
改變NICE--->PR
優先級的范圍:
-20——19 數字越低,優先級越高,系統會按照更多的cpu時間給該進程
注意:我們能夠修改的只有 Ni 的優先級,而不能修改 Pr 的優先級。
步驟1:運行top命令,按r,會提示輸入希望修改優先級的進程的PID,這里輸入6451,表示想修改firewalld進程的優先級
步驟2:輸入6451后回車,提示希望修改的具體數字,這個數字是從-20到19,這里輸入5,數字越大,優先級別越低,所以,這里是降低了firewalld的優先級
步驟3:輸入5后,按回車,會發現6451進程的NI, 從0變成了5,PR從20變成了25
2)命令行使用renice調整
命令:renice
語法:renice [NI優先級設置的數字] 想調整的進程ID
[root@localhost ~]# renice -5 6451
含義:將6451進程的NI優先級設置為-5,實際效果是提高了6451進程的優先級
注意:這里的-5代表設置成-5,不是所謂加減的關系,如果當前NI的值是10,當設置成-5后,NI的值會變為-5.
② 程序啟動時指定優先級(nice),只能調整不在運行的程序。
步驟1:將程序停止
步驟2:啟動并制定優先級
步驟3:確認優先級(查看優先級)
命令:nice
語法:nice [NI優先級設置的數字] 想調整的進程名
啟動進程時,通常會繼承父進程的 nice級別,默認為0
#ps -ef |grep crond
含義:查看crond的進程信息
目的:找出crond的PID,用于結束進程
#kill -9 crond的進程ID
含義:結束crond的進程
目的:nice只能修改不在運行的進程的優先級
#ps -ef |grep crond
含義:查看crond的進程信息
目的:確認crond進程是不是已經停止了
#nice -n -5 crond
含義:啟動crond進程,將NI設置成-5
#ps -ef |grep crond
含義:查看crond的進程信息
目的:找出crond的PID,用于查看此進程的優先級
#top -p crond的進程ID