1. 程式人生 > >Linux程序優先順序調整

Linux程序優先順序調整

1. Linux top命令輸出中PR值和NI值有什麼不同
NI 是優先值,是使用者層面的概念, PR是程序的實際優先順序, 是給核心(kernel)看(用)的。
一般情況下,PR=NI+20, 如果一個程序的優先順序PR是20, 那麼它的NI(nice)值就是20-20=0。
可以通過改變NI來改變PR: PRI(new) = PRI(old) + nice

NI is the nice value, which is a user-space concept. PR is the process's actual priority, as viewed by the Linux kernel.

For normal processes, the kernel priority is simply +20 from the nice value. Thus a process with the neutral nice value of zero has a kernel priority of 20. This offset-by-20 is done so that a process with a nice value of -20, the highest priority nice value, receives a kernel priority of zero. Lower numeric values equal higher scheduling priority.

For realtime processes, the kernel priority is the process's real-time priority, but thePR column will simply print RT.

In some versions of the Linux kernel, the kernel priority could differ from the nice value, as the process scheduler applied a small bonus or punishment to interactive or processor-hogging tasks, respectively. In these older kernels, the value given by the PR column could differ from the nice value. This isn't true with the kernel's current scheduler, the Completely Fair Scheduler (CFS).
 
This article come from:
 http://www.quora.com/Linux/What-is-the-difference-between-the-NI-and-PR-values-in-the-top-1-commands-output
 
2. Nice調整限制:
nice 值可調整的範圍為 -20 ~ 19 ;
Useful priorities are: 20 (the affected processes will run only when nothing else
     in the system wants to), 0 (the ''base'' scheduling priority), anything negative (to make things go very fast).
root 可隨意調整自己或他人程式的 Nice 值,且範圍為 -20 ~ 19 ;
一般使用者僅可調整自己程式的 Nice 值,且範圍僅為 0 ~ 19 (避免一般使用者搶佔系統資源);
一般使用者僅可將 nice 值越調越高,例如本來 nice 為 5 ,則未來僅能調整到大於 5;

3. Nice調整方法
3.1新執行的指令即給予新的 nice 值
[
[email protected]
~]# nice [-n 數字] command
選項與引數:
-n  :後面接一個數值,數值的範圍 -20 ~ 19。
  www.2cto.com  
用ps -l查的話,裡面顯示的PRI就是PRI(new),核心會自動調整,不是PRI(old) + nice的值,會調高一點點

3.2 已存在程式的 nice 重新調整
        renice [number] PID
        
4. 設定某使用者的所有程序優先順序
修改/etc/security/limits.conf, 增加一行
userxxx - nice 19

要使 limits.conf 檔案配置生效,必須要確保 pam_limits.so 檔案被加入到啟動檔案中。檢視 /etc/pam.d/login 檔案中有:
session required /lib/security/pam_limits.so


5. 其他:
5.1用taskset限制程序的CPU使用率:
http://www.cyberciti.biz/tips/setting-processor-affinity-certain-task-or-process.html
http://www.jb51.net/LINUXjishu/97275.html

5.2採用cpulimit限制程序的CPU使用率(發生SIGSTOP和SIGCONT訊號):
http://cpulimit.sourceforge.net/
http://www.ttlsa.com/tools/cpulimit-limit-cpu-usage-on-linux/
http://maxmanii.blog.163.com/blog/static/1200622672009517112429702/

相關推薦

Linux程序優先順序調整

1. Linux top命令輸出中PR值和NI值有什麼不同 NI 是優先值,是使用者層面的概念, PR是程序的實際優先順序, 是給核心(kernel)看(用)的。 一般情況下,PR=NI+20, 如果一個程序的優先順序PR是20, 那麼它的NI(nice)值就是20-20

Linux:程序優先順序

什麼是程序優先順序? 1.cpu分配資源的先後順序,就是指程序的優先權 2.優先順序高的程序有優先執行的權利。配置程序優先權對多工環境的Linux很有用,可以改善系統的效能 3.可以把程序繫結到指定的cpu上,這樣可以把不重要的程序安排到別的cpu上,可以改善系統的整體效能(不用在多

Linux——程序優先順序

程序優先順序 概念:cpu資源分配的先後順序,就是指程序的優先順序 優先順序高的程序有優先執行的權力。配置程序優先權對多工環境的linux很有用,可以改善系統性能 還可以把程序執行到指定的cpu上,這樣一來,把不重要的程序安排到某個cpu,可以大大改善系統的整體效能

linux 程序優先順序

Linux的程序優先順序 為什麼要有程序優先順序?這似乎不用過多的解釋,畢竟自從多工作業系統誕生以來,程序執行佔用cpu的能力就是一個必須要可以人為控制的事情。因為有的程序相對重要,而有的程序則沒那麼重要。程序優先順序起作用的方式從發明以來基本沒有什麼變化,無論是隻有一個c

Linux程序或執行緒繫結到CPU+修改優先順序

  轉載自 https://www.cnblogs.com/swey/p/4469722.html 為了讓程式擁有更好的效能,有時候需要將程序或執行緒繫結到特定的CPU,這樣可以減少排程的開銷和保護關鍵程序或執行緒。 程序繫結到CPU Linux提供一個介面,可以

Linux 程序管理 程序優先順序管理

Linux程序優先順序 Linux 是一個多使用者、多工的作業系統,系統中通常執行著非常多的程序。但是 CPU 在一個時鐘週期內只能運算一條指令(現在的 CPU 採用了多執行緒、多核心技術,所以在一個時鐘週期內可以運算多條指令。 但是同時運算的指令數也遠遠小於系統中的程序總數),所以需要由程序的優

我就是認真:Linux程序優先順序 NI 和 PR 有什麼區別?

請及時關注“高效運維(微信ID:greatops)”公眾號,並置頂公眾號,以免錯過各種乾貨滿滿的原創文章。 作者簡介 鄒立巍 Linux系統技術專家。目前在騰訊SNG社交網路運營部 計算資源平臺組,負責內部私有云平臺的建設和架構規劃設計。 曾任新浪動態應用平臺系統架構師,負責微博、新浪部落格等重點

Linux核心模組程式設計(列出系統中所有核心執行緒的程式名、PID 號、程序狀態及程序優先順序、父程序的PID)

(1) 設計一個模組,要求列出系統中所有核心執行緒的程式名、PID 號、程序狀態及程序優先順序、父程序的PID。 1.首先,我們開始編寫模組程式碼,這是Linux核心程式設計的核心程式碼,程式碼如下: #include <linux/init.h&

深入 Linux程序優先順序

轉自: http://liwei.life/2016/04/07/linux%E7%9A%84%E8%BF%9B%E7%A8%8B%E4%BC%98%E5%85%88%E7%BA%A7/ 為什麼要有程序優先順序?這似乎不用過多的解釋,畢竟自從多工作業系統誕生以來,程序執行佔

Linux環境下提高程序優先順序

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

linux程序優先順序

為什麼要有程序優先順序?這似乎不用過多的解釋,畢竟自從多工作業系統誕生以來,程序執行佔用cpu的能力就是一個必須要可以人為控制的事情。因為有的程序相對重要,而有的程序則沒那麼重要。 程序優先順序起作用的方式從發明以來基本沒有什麼變化,無論是隻

linux下如何修改程序優先順序

Linux 與其他現代作業系統一樣,也可以執行多個程序。它在多個程序之間共享 CPU 和其他資源。如果一個程序佔用了 100% 的 CPU,那麼其他程序將無法響應。 如果執行 top 命令,預設將按照 CPU 使用量的降序顯示程序,如清單 1 所示。在上一篇文章 “學習 L

Linux 檢視程序 設定程序優先順序 終結程序

1、使用ps檢視當前系統中的所有程序,包括有終端和無終端的程序2、使用top命令檢視當前系統中程序的cpu佔有率,記憶體以及交換檔案的使用率,觀察系統負載。 3、開啟3個shell連線,找到這三個shell的pid4、在上一步的3個shell中同事執行top,隨後終止掉其中任

Linux改變程序優先順序 linux Nice命令

在執行du、tar等命令時,會造成系統負載飆升,Apache響應緩慢。這時nice命令改變程序優先順序可能能緩解這種狀況。 nice命令用於調整Linux系統中程序的優先順序。 通俗地講,linux系統中,程序有-19到19這39個優先順序。-19最優先,19最不優先。程序的預設優先順序為0。 如果希望

Linux kill工具和作業控制及優先順序調整

1. kill kill: kill命令用了殺死單個程序或者一類程序,殺死程序的過程其實是向程序傳送各種不同的控制訊號,以實現對程序的管理。 顯示當前系統可用訊號: [root@localhost ~]# kill -l 1) SIGHUP

如何運行linux程序

linux程序 執行文件 運行程序 source 解釋器 導讀搞懂linux程序如何運行是一件重要的事情,這是為我們進一步發展打下了堅實基礎的一步。本文將通過實例來詳細地講解如何運行linux程序。希望對於大家理解有幫助。首先,我們從一個十分簡單的例子test.sh開始吧:#!/bin/s

Linux程序設計學習筆記——異步信號處理機制

基本概念 erro 驗證 添加 uid 函數 count ubun generate 轉載請註明出處: http://blog.csdn.net/suool/article/details/38453333 Linux常見信號與處理 基本概念 Linux的信號是一

Linux 程序設計學習筆記----Linux下文件類型和屬性管理

腳本 types.h 沒有 oot 創建 jsb 文件 屬性 文件大小 轉載請註明出處:http://blog.csdn.net/suool/article/details/38318225 部分內容整理自網絡,在此感謝各位大神。 Linux文件類型和權限 數據表示

安裝Linux後需要調整的一些參數【Linux調優】

工作 表示 服務 title 配置文件 業務 edi href 連接 1、關閉SELinux功能 修改配置文件(永久生效) [[email protected]/* */_slave1 ~]# sed -i ‘s#SELINUX=enforcing#SELI

Linux程序設計(搭建開發環境--curses)

包名 monit con 發現 dsm pop 依賴關系 當前 term 看官們。咱們今天要說的內容。是前面內容的一點小補充,詳細的內容是:安裝curses開發包。以搭建 開發環境。閑話休說,言歸正轉。 我們在前面說過搭建開發環境的內容,主要說了