top 工具的使用
top 工具是我们常用的一个查看工具,能实时的查看我们系统的一些关键信息的变化
我们看到 top 显示的第一排,
内容 -----------------------------解释
top -------------------------------表示当前程序的名称
11:05:18 ------------------------表示当前的系统的时间
up 8 days,17:12 --------------表示该机器已经启动了多长时间
1 user ---------------------------表示当前系统中只有一个用户
load average: 0.29,0.20,0.25 --分别对应1、5、15分钟内cpu的平均负载
来看 top 的第二行数据,基本上第二行是进程的一个情况统计
内容 ------------------------------解释
Tasks: 231 total -----------------进程总数
1 running ------------------------1个正在运行的进程数
229 sleeping -----------------------229个睡眠的进程数
1 stopped -------------------一个停止的进程数
0 zombie -----------------------------没有僵尸进程数
来看 top 的第三行数据,这一行基本上是 CPU 的一个使用情况的统计了
内容 解释
Cpu(s): 0.7%us ------------用户空间进程占用CPU百分比
0.3% sy -----------------------内核空间运行占用CPU百分比
0.0%ni -----------------------用户进程空间内改变过优先级的进程占用CPU百分比
99.0%id ---------------------空闲CPU百分比
0.0%wa ---------------------等待输入输出的CPU时间百分比
0.0%hi -----------------------硬中断(Hardware IRQ)占用CPU的百分比
0.0%si -----------------------软中断(Software IRQ)占用CPU的百分比
0.0%st -----------------------(Steal time) 是 hypervisor 等虚拟服务中,虚拟 CPU 等待实际 CPU 的时间的百分比
来看 top 的第四行数据,这一行基本上是内存的一个使用情况的统计了:
内容 ----------------------------解释
1961108total ----------------物理内存总量
196280used ----------------使用的物理内存总量
701256free ------------------空闲内存总量
1063572buffers --------------用作内核缓存的内存量
来看 top 的第五行数据,这一行基本上是交换区的一个使用情况的统计了
内容 ---------------------------解释
total -----------------------------交换区总量
used --------------------------使用的交换区总量
free -----------------------------空闲交换区总量
cached -------------------------缓冲的交换区总量,内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖
在下面就是进程的一个情况了
列名 解释
PID ------------------------进程id
USER ----------------------该进程的所属用户
PR -----------------------------该进程执行的优先级 priority 值
NI -------------------------------该进程的 nice 值
VIRT -----------------------该进程任务所使用的虚拟内存的总数
RES ------------------------该进程所使用的物理内存数,也称之为驻留内存数
SHR ------------------------该进程共享内存的大小
S ------------------------------该进程进程的状态: S=sleep R=running Z=zombie
%CPU ---------------------------该进程CPU的利用率
%MEM ----------------------------该进程内存的利用率
TIME+ ----------------------------该进程活跃的总时间
COMMAND ----------------------该进程运行的名字
常用交互命令 ------------解释
q ----------------------------退出程序
I ----------------------------切换显示平均负载和启动时间的信息
P ---------------------------根据CPU使用百分比大小进行排序
M ---------------------------根据驻留内存大小进行排序
i ---------------------------忽略闲置和僵死的进程,这是一个开关式命令
k ----------------------------终止一个进程,系统提示输入 PID 及发送的信号值。一般终止进程用 15 信号,不能正常结束则使用 9 信号。安全模式下该命令被屏蔽。
ps 工具的使用
ps 也是我们最常用的查看进程的工具之一,我们通过这样的一个命令来了解一下,他能给我带来哪些信息
内容 ----------------------------------------解释
F ---------------------------------------------进程的标志(process flags),当 flags 值为 1 则表示此子程序只是 fork 但没有执行 exec,为 4 表示此程序使用超级管理员 root 权限
USER -----------------------------------------进程的拥有用户
PID ----------------------------------------进程的 ID
PPID --------------------------------------其父进程的 PID
SID ------------------------------------------session 的 ID
TPGID -------------------------------------前台进程组的 ID
%CPU -------------------------------------进程占用的 CPU 百分比
%MEM ------------------------------------占用内存的百分比
NI -------------------------------------------进程的 NICE 值
VSZ --------------------------------------进程使用虚拟内存大小
RSS --------------------------------------驻留内存中页的大小
TTY --------------------------------------------终端 ID
S or STAT --------------------------------------进程状态
WCHAN --------------------------------正在等待的进程资源
START -----------------------------启动进程的时间
TIME --------------------------------------------进程消耗CPU的时间
COMMAND ------------------------------命令的名称和参数
TPGID栏写着-1的都是没有控制终端的进程,也就是守护进程
STAT表示进程的状态,而进程的状态有很多,如下表所示
状态 ------------------------------------解释
R ----------------------------------------Running.运行中
S ----------------------------------------Interruptible Sleep.等待调用
D ----------------------------------------Uninterruptible Sleep.不可中断睡眠
T ----------------------------------------Stoped.暂停或者跟踪状态
X ----------------------------------------Dead.即将被撤销
Z ----------------------------------------Zombie.僵尸进程
W -----------------------------------------Paging.内存交换
N ----------------------------------------优先级低的进程
< ----------------------------------------优先级高的进程
s ----------------------------------------进程的领导者
L -----------------------------------------锁定状态
l -----------------------------------------多线程状态
-
----------------------------------------前台进程
其中的
D
是不能被中断睡眠的状态,处在这种状态的进程不接受外来的任何signal
,所以无法使用kill
命令杀掉处于D
状态的进程,无论是kill
,kill -9
还是kill -15
,一般处于这种状态可能是进程I/O
的时候出问题了。
kill 命令的掌握
kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。程序或工作的编号可利用ps指令或job指令查看。
语法
kill(选项)(参数)
-a:------------------------------当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信息编号>:---------------若不加<信息编号>选项,则-l参数会列出全部的信息名称;
-p:------------------------------指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信息名称或编号>:------指定要送出的信息;
-u:---------------------------------指定用户
网友评论