欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

程序员文章站 2022-06-24 21:32:51
一. 实时监测进程 top 在一篇里讲到ps命令在收集进程信息时非常有用,但它只能显示某个特定时间点的信息。想要观察那些频繁换进换出的内存进程趋势,用top命令是合适的。使用top命令如下图所示: 在上图中分为二部份信息,一部份是系统的概述,另一部份是列表的进程概述。 1.1 第一部分 第一行显示了 ......

一. 实时监测进程 top

  在一篇里讲到ps命令在收集进程信息时非常有用,但它只能显示某个特定时间点的信息。想要观察那些频繁换进换出的内存进程趋势,用top命令是合适的。使用top命令如下图所示:
    Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

  在上图中分为二部份信息,一部份是系统的概述,另一部份是列表的进程概述。

  1.1 第一部分

    第一行显示了当前的系统时间,up是指系统运行时间,user 是指用户登录数,以及load average是指系统平均负载。
    在平均负载有3个值:最近1分钟,最近5分钟,最近15分钟点。值越大说明系统的负载越高。由于进程短期的突发性活动,出现最近1分钟的高负载值也很常见。但近15分钟内平均负载都很高,说明说系统可能有问题。通常系统的负载值超过了2,就说明系统比较繁忙了。

    第二行显示了进程概要信息。 tasks是进程数叫做任务。包括几种状态:运行,休眠,停止,僵化。上图显示了1个进程运行, 208个进程休眠。

    第三行显示了cpu概述信息。us和 sy 是进程的属主(用户还是系统)。us 是运行用户进程的cpu时间。sy 是运行内核进程的cpu时间。  ni 是指niced 运行已调整优先级的用户进程cpu时间。 wa 是指io wait 等待io完成的cpu时间。hi是指处理硬件中断的cpu时间。si是处理软件中断的cpu时间。
    最后二行是系统内存的状态。 第一行说的是系统的物理内存总量。used当前用了多少内存。free还有多少空闲内存。buff/cache缓存的内存量。第二行说的是系统的交换空间。

  1.2 第二部份
    进程列表显示了当前运行中的进程详细列表信息,跟ps -ef命令输出类似。

列名

说明

pid

进程id

user

进程属主的名字

pr

进程的优先级

virt

进程占用的虚拟内存总量

res

进程占用的物理内存总量

shr

进程与其它进程共享的内存总量

s

进程状态(d可中断的休眠状态,r运行,s休眠,t停止,z僵化)

%cpu

进程使用的cpu时间比例

%mem

进程使用的内存占可用内存的比例

time+

进程启动到现在cpu时间总量

    默认情况下,top命令会按照%cpu值对进程排序。当top命令运行监控时,可以使用多种交互命令。例如按下f 键允许你选择对输出进行排序字段,默认是%cpu字段排序。按d键允许修改轮询间隔,按q键退出t监控。使用这个工具能经常找出占用系统大部份资源的进程。
    下图是在top监控时,按下f键,选择要排序的字段。

      Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

 

二.结束进程kill与killall

    当管理员找到了占用系统大部份资源的进程时,可能需要手动结束该进程。

  2.1 kill 命令

    kill命令通过进程id(pid)给进程发信号。要发送进程信号,必须是进程的属主或登录为root用户,下图是查看一个mysqld服务进程。
    Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

    下面通过kill 来结束mysqld服务进程。

    Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

    再来查看mysqld进程是否在运行,如下图已不存在
    Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

  2.2 killall 命令 

    该命令非常强大,它通过支持进程名而不是pid来结束进程。killall命令也支持通配符。通配符如下,删除前缀有mysql的字符进程.使用进要小心,有可能结束的重要的系统进程。
    Linux编程 7 (实时监测进程 top, 结束进程kill,killall)

    下面是通过进程名来删除mysqld.pid进程,同样删除后mysqld.pid进程不存在了。
    Linux编程 7 (实时监测进程 top, 结束进程kill,killall)