linux进程优先级的实现

发布时间:2014-10-23 23:29:15
来源:分享查询网

首先linux进程优先级的范围是-20到19 将当前目录下的documents目录打包,但不希望tar占用太多CPU: nice -19 tar zcf pack.tar.gz documents 这个“-19”中的“-”仅表示参数前缀;所以,如果希望赋予tar进程最高的优先级,则执行: nice --19 tar zcf pack.tar.gz documents 也可修改已经存在的进程的优先级: 将PID为1799的进程优先级设置为最低: renice 19 1799 renice命令与nice命令的优先级参数的形式是相反的,直接以优先级值作为参数即可,无“-”前缀说法。   进程cpu资源分配就是指进程的优先权(priority)。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用,可以改善系统性能。还可以把进程运行到指定的CPU上,这样一来,把不重要的进程安排到某个CPU,可以大大改善系统整体性能。 一、先看系统进程: 首先,我想用一个简单的命令来引起这个议题。 无论在linux或者unix系统中,用ps –l命令则会类似输出以下几个内容: [root@dbbak root]# ps –l   --- 这里用的是linux测试 F S   UID   PID  PPID  C PRI  NI ADDR    SZ WCHAN  TTY          TIME CMD 4 S     0 20538 20534  0  75   0    -  1063 wait4  pts/2    00:00:00 bash 4 R     0 20663 20538  0  75   0    -   828 -      pts/2    00:00:00 ps 我们很容易注意到其中的几个重要信息,有下: UID : 代表执行者的身份 PID : 代表这个进程的代号 PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号 PRI :代表这个进程可被执行的优先级,其值越小越早被执行 NI :代表这个进程的nice值 这里的前面的三个信息,我们都是比较好容易理解的,但是后面的两个奇怪的信息,一个是PRI,一个是NI,这到底是什么东西?相对而言,PRI也还是比较好理解的,即进程的优先级,或者通俗点说就是程序被CPU执行的先后顺序,此值越小进程的优先级别越高。那NI呢?就是我们所要说的nice值了,其表示进程可被执行的优先级的修正数值。如前面所说,PRI值越小越快被执行,那么加入nice值后,将会使得PRI变为:PRI(new)=PRI(old)+nice。这样,当nice值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行。 到目前为止,更需要强调一点的是,进程的nice值不是进程的优先级,他们不是一个概念,但是进程nice值会影响到进程的优先级变化。 ————————————————————————— 二、修改进程优先级的命令主要有两个:nice,renice 1、一开始执行程序就指定nice值:nice nice -n -5 /usr/local/mysql/bin/mysqld_safe & linux nice 命令详解 功能说明:设置优先权。 语  法:nice [-n <优先等级>][--help][--version][执行指令] 补充说明:nice指令可以改变程序执行的优先权等级。 参  数:-n<优先等级>或-<优先等级>或–adjustment=<优先等级>  设置欲执行的指令的优先权等级。等级的范围从-20-19,其中-20最高,19最低,只有系统管理者可以设置负数的等级。 –help  在线帮助。 –version  显示版本信息。 ————————————————————————— 2.1、调整已存在进程的nice:renice renice -5 -p 5200 #PID为5200的进程nice设为-5 linux renice 命令详解 功能说明:调整优先权。 语  法:renice [优先等级][-g <程序群组名称>...][-p <程序识别码>...][-u <用户名称>...] 补充说明:renice指令可重新调整程序执行的优先权等级。预设是以程序识别码指定程序调整其优先权,您亦可以指定程序群组或用户名称调整优先权等级,并修改所有隶属于该程序群组或用户的程序的优先权。等级范围从-20–19,只有系统管理者可以改变其他用户程序的优先权,也仅有系统管理者可以设置负数等级。 参  数: -g <程序群组名称>  使用程序群组名称,修改所有隶属于该程序群组的程序的优先权。 -p <程序识别码>  改变该程序的优先权等级,此参数为预设值。 -u <用户名称>  指定用户名称,修改所有隶属于该用户的程序的优先权。 2.2、也可以用top命令更改已存在进程的nice: top #进入top后按“r”–>输入进程PID–>输入nice值

返回顶部
查看电脑版