Linux 限制进程优先级,Linux 进程管理:top 命令

工作在 Linux 命令行下,会有想查看系统进程相关状况的时候,诸如,各进程占用 CPU 或查看哪个进程占用内存最多等需要。 好的,有一个被称为顶级(top) 的命令能满足你,而且它使用简单。本教程中,我们使用一些简单例子讲解这个命令。

讲解之前,必须一提的是本文所有的例子都在 Ubuntu 16.04 LTS 系统上运行通过。

Linux top 命令

命令 top 显示当前系统内核中进程和线程的一个信息列表,下面是其命令语法:

top [命令选项]

跟随以下类似 Q&A(问与答)方式的例子,我们更容易掌握 top 命令的运用。

问题1. top 如何使用?

简单地,不带任何命令选项键入 top 命令:

$ top

下面是我系统上的输出:

f2dda76909ece193813a249e629c13c4.png

注意到我的截图只是实时输出的快照(屏幕输出以固定的时间间隔在变化)。

问题2. 如何看明白 top 命令的屏幕输出?

先看屏幕输出最上面第一行。它按顺序输出以下信息 -- 当前时间,系统启动运行时长,活动用户会话数,系统平均负载(最近1分钟,5分钟,15分钟时间内平均统计值)。

第二行按顺序输出 -- 进程总数 ,运行进程数 ,休眠进程数 ,停止进程数 ,僵尸进程数 。

第三行包含 CPU 占用时间百分比信息。详细信息如下:

us, user : 未调优先级(un-niced)的用户进程时间占比

sy, system : 系统内核进程时间占比

ni, nice : 调优先级(niced)的用户进程时间占比

id, idle : 内核空闲时间占比

wa, IO-wait : 用于系统 输入/输出 等待时间占比

hi : 硬件中断(hardware interrupts)消费时间占比

si : 软件中断(software interrupts)消费时间占比

st : 虚拟管理子系统消耗(stolen)时间占比

接着的两行,显示的是内存和交换内存使用情况信息。最后,是每个进程的相关信息,有数列信息,按顺序列标题含义 -- PID (进程 ID -- process ID) ,USER(进程所属用户) , PR (进程优先级数 -- priority ) ,NI(进程优先参数 -- nice value) , VIRT (虚拟内存占用 -- virtual) ,RES(物理内存占用 -- physical resource) , SHR (共享内存占用 -- shared memory) ,S(进程状态 -- status) ,%CPU (CPU 占比) ,%MEM(内存占比 -- RAM memory) , TIME+ (活动时长 -- time of activity) ,COMMAND(启动进程的命令 -- command) 。

问题3. 在 top 命令界面如何终止进程?

这很容易,只键入 ‘k’ 键,top 命令将会提示请求你输入想终止的 PID(进程 ID) 。你会在进程的列表头上方一行看到这个信息,例子中显示信息为 'PID to signal/kill [default pid = 3397]' ,中文含义: '信号\/终止发送到的 PID [默认 pid = 3397] ' 。如下截图所示:

49b87434de4d55a264cb94fe46b78e6c.png

如你所见,你可以输入一个进程 ID 或回车默认。top 将会终止(通过发送终端信号 SIGTERM )指定 PID 的进程。一旦信号发送,如下信息显示在屏幕上 -- 'Send pid 3007 signal [15/sigterm]' ,中文含义: '发送到 pid 3007 信号 [15/sigterm]' 。

问题4. 如何改变进程优先级?

类似 'k' 键去终止进程,可用 'r' 去改变进程优先级(改变进程优先级是通过优先级参数 -- nice -- 的值去改变 -- renice-- 操作 )。键入 'r' 键,屏幕显示如下信息:

PID to renice [default pid = 3397] #调优先级参数的 PID [默认 pid=3397]

输入一个 PID 或回车保持默认,示例中,我输入一个 PID 后,top 屏幕提示我输入优先级参数( nice) 值。

Renice PID 2665 to value #输入 PID 2665 调整的优先级参数值

输入一个数值(范围 -20~19)并回车,你会看到 PID 2665 的进程优先级参数(nice)值改变。

Q5. 如何更改 top 命令的刷新率?

默认情况下, top 每3秒刷新一次输出,但是您可以通过键入'd'进行调整。该命令将要求您输入新的延迟值:

将延迟从3.0更改为

只需输入值,然后按下 Enter 键。即可。

Q6. 如何限制 top 命令输出的用户

默认情况下, top 命令显示所有进程。但是,您可以通过键入'u'将输出限制为特定用户。

哪个用户 (空白代表全部)

只需在上面的行内输入用户名, 然后按下 Enter 键, 您将看到输出仅包含那些由您输入名称的用户所拥有的进程。

例如,我输入了'root',输出如下:

fa297cec8ea650f3d35250506e93d1e3.png

Q7. 如何使 top 命令显示完整的命令以及参数?

这可以通过键入 'c' 来完成。  例子如下:

cd252dc19da750f2e264214a9739ccfb.png

这样您现在可以在输出中看到完整的命令路径以及命令行参数。

Q8. 如何获得交互式 top 命令的帮助?

要获得与交互式 top 命令有关的帮助, 请键入 'h' 。在输出中,您将看到可用的命令以及它们的作用。例如,这是当我按下 ' h' 时在系统上弹出的内容。

f681e4893f7b5ddd18fa9cb62e185bae.png

结论

我们在这仅仅摸到了点皮毛。top 命令提供了更多的功能。一旦您了解了我们在本文中讨论的所有内容并完成了实践, 请转到 top 的 手册页 以了解更多信息。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值