|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
只要了解了Linux的基础之后,应该就可以很轻易的解决掉这方面的问题。而有些朋友们常常一接触Linux就是希望构架网站,根本没有想到要先了解一下Linux的基础。这是相当困难的。
起首,我想用一个复杂的命令来引发这个议题。不管在linux大概unix体系中,用ps–l命令则会相似输入以下几个内容:
[root@dbbakroot]#ps–l---这里用的是linux测试
FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD
4S020538205340750-1063wait4pts/200:00:00bash
4R020663205380750-828-pts/200:00:00ps我们很简单注重到个中的几个主要信息,有下:
UID:代表实行者的身份
PID:代表这个历程的代号
PPID:代表这个历程是由哪一个历程开展衍生而来的,亦即父历程的代号
PRI:代表这个历程可被实行的优先级,其值越小越早被实行
NI:代表这个历程的nice值
这里的后面的三个信息,我们都是对照好简单了解的,可是前面的两个奇异的信息,一个是PRI,一个是NI,这究竟是甚么工具?绝对而言,PRI也仍是对照好了解的,即历程的优先级,大概普通点说就是程序被CPU实行的前后按次,此值越小历程的优先级别越高。那NI呢?就是我们所要说的nice值了,其暗示历程可被实行的优先级的修改数值。如后面所说,PRI值越小越快被实行,那末到场nice值后,将会使得PRI变成:PRI(new)=PRI(old)+nice。如许,当nice值为负值的时分,那末该程序将会优先级值将变小,即其优先级会变高,则其越快被实行。
历程在创立时并非同等的,他们被付与分歧的优先级值,比方有些对盘算机自己的操纵相当主要的程序必需比其他主要的程序具有更高的优先级(则其有更小的优先级值)。而如后面所说,nice的值是暗示历程优先级值可被修改数据值,因而,每一个历程都在其企图实行时被付与一个体系nice值,如许体系就能够依据体系的资本和详细历程的各种资本损耗情形,自动干涉历程的优先级值。这个历程,用户也可手工干涉个中,可是要被付与响应的权限。
在UNIX体系大概LINUX体系中,利用从-20到+19的一个可变数值来暗示这个nice值(LINUX和AIX是这类情形,HP-UX体系的值局限是从0到39),而且在一般情形下,子历程会承继父历程的体系nice值。具有最高优先级的程序,其nice值最低,以是在UNIX和LINUX体系中,值-20使得一项义务变得十分主要(HP-UX为0);与之相反,假如义务的nice为+19(HP-UX为39),则暗示它是一个崇高的、忘我的义务,同意一切其他义务比本人享有可贵的CPU工夫的更年夜利用份额,这也就是nice的称号的领悟来意。
在体系启动的过程当中,init历程会被付与0(HP-UX体系值会被付与20),其他一切历程承继了这个nice值(由于其他的历程都是init的子历程)。关于用户,从他们入手下手上岸初始化历程,其他在其底下衍生出来的子历程也会付与该nice值。原始用户,只能将其底下的实行历程的nice值变年夜(相对其自己nice值而言)而不克不及变小;若想变小,得要有响应的权限,如root用户能够设置变小,以下:
[oracle@perf_dbc~]$nice
0
[oracle@perf_dbc~]$nice-n3ls
agentbinimportant_baklogsstatistics_import.logTMP_FORUM_STATS.dmpTMP_TAOBAO_STATS.dmpTMP_TBCAT_STATS.dmptop.dmpworksh
[oracle@perf_dbc~]$
[oracle@perf_dbc~]$nice-n-3ls
nice:cannotsetpriority:Permissiondenied而root用户就能够给其子历程付与更小的nice值,以下:
[root@dbbakroot]#nice
0
[root@dbbakroot]#nice-n-3ls
192.168.205.191.txtanaconda-ks.cfgclariion.logDesktopdisk1emc.shFile_sortinstall.loginstall.log.sysloglogOPSrhel_os_softroot_link_name关于背景历程,其nice会在其被显现付与的值事后再加上4。如“nice12command&”命令实行时,则其会以nice=36值来运转程序(HP-UX体系)。这里有个成绩,即假如用户设置的nice值凌驾了nice的界限值(LINUX和AIX为-20到19,HP-UX为0到39)会如何,则体系就取nice的界限值作为历程的nice值。
与历程的nice相干的命令有2个,分离是nice和renice。
nice命令就是设置一个要实行command历程的nice值,其命令格局是nice–nadjustmentcommandcommand_option,这里就设置要实行的command的nice,假如这里不指定adjustment,则默许为10。
renice命令就是设置一个已在运转的历程的nice值,如假定一运转历程原本nice值为0,renice为3后,则这个运转历程的nice值就为3了。renice的实行必需要有响应的权限方可实行。它能够依据用户、历程ID、历程组来设置历程的nice值。
对nice值一个抽象比方,假定在一个CPU轮转中,有2个runnable的历程A和B,假如他们的nice值都为0(假如是HP-UX则为20),加上内核会给他们每人分派1k个cpu工夫片。可是假定历程A的为0,可是B的值为-10,那末此时CPU则会大概分离给A和B分派1k和1.5k的工夫片。故能够抽象的了解为,nice的值影响了内核分派给历程的cpu工夫片的几,工夫片越多的历程,其优先级越高,其优先级值越低。
从利用top、ps等命令看到的nice值,就是历程所具有的nice值,利用iostat等看到的%nice,就是用户历程空间中改动过优先级的历程的占用CPU的百分比,如上例中就说0.5k/2.5k=1/5=20%。
到今朝为止,更必要夸大一点的是,历程的nice值不是历程的优先级,他们不是一个观点,可是历程nice值会影响到历程的优先级变更。
--EOF--
本文来自:http://rdc.taobao.com/blog/dba/html/261_proccess_pri_nice.html
看不懂man文档的人.在linux中,命令可分为系统基本命令和应用程序命令.系统基本命令是所有的unix类系统都支持的命令,走到哪都不变,只要是unix类系统上就肯定有. |
|