Linux系統下提公升程序優先順序的辦法

2021-09-25 12:05:49 字數 800 閱讀 8608

與別人共用工作站或者集群進行大型運算,比較愁人,老是與別人分享資源,太蛋疼,所以找了個小妙招,可以試用一下。

linux系統程序的優先順序取值:-20 到 19,數越大優先順序越低。

可以通過top命令來檢視,ni那一列。

改變程序的優先順序的方法有兩種:

www.2cto.com  

1,top命令。輸入r,然後根據提示輸入程序id,再輸入優先順序數值。

2,renice命令。renice -n 2 -p 3432。-n,後面是優先順序的值;-p,是程序號。

另外:在嵌入式linux系統中,大多都是跑乙個核心的業務,在資料吞吐量大的時候,會大量占用cpu,導致資料處理不過來,常規辦法是優化程式或者更換更高效能的平台來解決,但是如果程式已經優化到極限和平台無法更換的情況下,可以通過提高業務程序的優先順序來提高業務資料的吞吐量,例如:

nice -n -20 ./bin 

nice為linux環境下的改變程序優先順序的命令,-n為程序優先順序級別引數,-20為優先順序級別,linux一共有40個優先順序,分別從-20到19,-20為最高優先順序,19為最低優先順序,一般程式預設優先順序為0,只有root許可權才能將程序優先順序設為負數,如果程式已經在執行,可以使用renice,在不中斷程式的情況下改變其優先順序,程式處於哪個優先順序可以通過top命令檢視,ni欄位則為對應該程式的優先順序。在做網路資料分析的時候該方法非常管用,沒有提高優先順序時,資料吞吐量大概為800mbps,再往上就開始處理不過來了,直到應用層buffer滿了導致資料丟失,將程序提高到最高優先順序,資料吞吐量可以提高到接近900mbps,效果相當明顯。

參考文獻

Linux程序優先順序系統 設定實時程序優先順序

最近研發的產品出了點小bug,最後查到根本原因是,其中乙個程序a使用基於fifo的實時程序優先順序,而另乙個程序b是使用普通排程的程序優先順序,而a和b兩個程序是互相通訊的,程序b會被餓死,而程序a也不能正常工作。分析問題過程中查詢了一些資料,以下記錄一些特別注意的點。1 sched other,分...

Linux程序優先順序和調整優先順序

linux 是乙個多使用者 多工的作業系統,系統中通常執行著非常多的程序。但是 cpu 在乙個時鐘週期內只能運算一條指令 現在的 cpu 採用了多執行緒 多核心技術,所以在乙個時鐘週期內可以運算多條指令。但是同時運算的指令數也遠遠小於系統中的程序總數 那問題來了 誰應該先運算,誰應該後運算呢?這就需...

程序優先順序

程序的優先順序可以通過setpriority nice修改優先順序。程序分為普通程序和實時程序。實時程序的優先順序比普通程序的優先順序高。nice的值 20 19值越小優先順序越高。預設為0 不同程序的執行緒優先順序?執行緒會繼承程序的優先順序,核心的排程是執行緒。所以先看程序是普通程序還是實時程序...