共计 1176 个字符,预计需要花费 3 分钟才能阅读完成。
在介绍 ps 命令在收集进程信息时非常有用,但它只能显示某个特定时间点的信息。想要观察那些频繁换进换出的内存进程趋势,用 top 命令是合适的。使用 top 命令如下图所示:
在上图中分为二部份信息,一部份是系统的概述,另一部份是列表的进程概述。
第一行显示了当前的系统时间,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 缓存的内存量。第二行说的是系统的交换空间。
进程列表显示了当前运行中的进程详细列表信息,跟 ps -ef 命令输出类似。
默认情况下,top 命令会按照 %CPU 值对进程排序。当 top 命令运行监控时,可以使用多种交互命令。例如按下 f 键允许你选择对输出进行排序字段,默认是 %CPU 字段排序。按 d 键允许修改轮询间隔,按 q 键退出 t 监控。使用这个工具能经常找出占用系统大部份资源的进程。
下图是在 top 监控时,按下 f 键,选择要排序的字段。
当管理员找到了占用系统大部份资源的进程时,可能需要手动结束该进程。
Kill 命令通过进程 ID(PID)给进程发信号。要发送进程信号,必须是进程的属主或登录为 root 用户,下图是查看一个 MySQLd 服务进程。
下面通过 kill 来结束 mysqld 服务进程。
再来查看 mysqld 进程是否在运行, 如下图已不存在
该命令非常强大,它通过支持进程名而不是 PID 来结束进程。Killall 命令也支持通配符。通配符如下,删除前缀有 mysql 的字符进程. 使用进要小心, 有可能结束的重要的系统进程。
下面是通过进程名来删除 mysqld.pid 进程,同样删除后 mysqld.pid 进程不存在了。