五月 17th, 2019

虽然现在多任务操作系统可能会使所有应用程序看起来都在同时运行,但实际情况却有所不同。计算机的多任务处理使用一种称为时间切片的方法,进程由处理它们的操作系统分配一个CPU时间片。进程本身无法控制它们获得的CPU时间,因为这都是由内核处理的,但是内核的进程调度会受到用户的影响,而这是用流程的nice值来完成的。那么什么是Nice值?本文Hostease美国服务器商主要就Linux操作系统中的nice值做详细的介绍。

所谓nice值,指内核使用进程的nice值决定如何对其CPU时间进行优先级排序,nice值范围从-20(进程的最高优先级)为19(进程的最小优先级)。新进程的默认nice值为零,将其减少为负数会增加处理器分配给进程的时间量,同时牺牲其他进程,将这个数字增加为正数将意味着将以牺牲其他进程为代价运行。有两个命令可以用来影响进程的nice值:nice和renice。先来看看nice。

Nice

nice命令用于设置进程的初始nice值,它还可以用来查看当前默认的nice值,使用相当简单——命令本身的工作方式如下:

这将为默认的nice值提供一个简单的数字,除非手动更改,否则将显示为零。要启动命令,需要一个简单的标志-n,它将nice值设置为所给给定的值加上的默认值,然后是要运行的命令。例如:

nice -n10 nano file.txt

这指的是使用nano来打开文件file.txt,如果默认值为零,那么nano的进程将得到一个nice值10。如果默认值为3,那么该进程的nice值将为13。虽然任何用户都可以为进程设置更高的nice级别,但要将nice值设置为默认值(增加进程的优先级)的负值,则需要超级用户访问。

Renice

另一方面,renice命令用于更改已经运行的流程或进程的nice值。它的工作方式与nice非常相似,只是这次是-n标志调整相对于进程的当前nice值的nice值。有三种选择进程来调整的方法,每种方法都有自己的标志。需要注意的是,用户只能更改属于自己使用的进程的nice值,除非用户使用的是超级用户特权。

-p按进程id选择进程

-g运行组id选择进程

-u通过运行用户id选择进程

以下是一些例子:

sudo renice -n -10 -p 2343

该命令将nice值从pid 2343调整到-10。

sudo renice -n 5 -g users

此命令将“用户”组中所有进程的nice值调整为5。

sudo renice -n 15 -u hayden

此命令将属于用户hayden的所有进程的nice值调整为15。

在大多数正常情况下,用户几乎不需要调整系统上进程的nice值。但是,如果用户需要运行任何非必要的CPU密集型任务,那么了解它们是有帮助的,增加任务的nice值可以使系统的其他部分在任务以更慢的速度执行时正常工作。

更多关于服务器方面的小知识可以访问Hostease美国服务器官网,了解理想详细的内容。推荐阅读:Windows和Linux虚拟主机应该怎样选比较好

发表评论

电子邮件地址不会被公开。 必填项已用*标注