一、概述
htop、top、dstat、ps是Linux系统上的进程的查看及管理的工具;可以帮助我们快速的去查找和定位问题,并可以对当前系统的运行状况及使情况进行实时打印;
二、进程
在系统启动后全产生许多进程,进程就是运行中的程序的一个副本,进程是有生命周期的,一般会随着自身所在bash的关闭而关闭,所有进程都是在系统启动后由/sbin/init来创建的,而进程之间存在父子关系,所有的子进程都是由其父进程创建的;
进程与进程间存在优先级:1-139
1-99:实时优先级
100-139:静态优先级
为了让CPU可以在同时处理多个进程,通常会对CPU划分多个时间片,每个时间片按时间长度(5秒)来依次运算每个需要处理的进程,所以CPU在一个进程运算5秒钟之后会把当前这个进程踢出,然后调入下一个进程继续处理,以此类推;在保证被踢出去的这个进程处理一半的数据不会丢失,Linux内核会在task struct中进行存储,task struct会有两个,一个是要处理的进程的task struct,另一个为处理过的task struct,当处理中的task struct被CPU遍历完成后,内核会把处理过的task struct当作要处理进程的task struct给CPU继续处理,依次类推;CPU在task struct调取进程时会按优先级进程处理;
如图:
进程类型:
守护进程:daemon,跟终端无关,在系统引导过程中启动的进程;
前台进程:跟终端相关,通过终端启动的进程;
注意:也可把在前台启动的进程送往后台,以守护模式运行;
进程状态:
运行态:running
就绪态:ready
睡眠态:
可中断:interruptable
不可中断:uninterruptable
停止态:暂停于内存中,但不会被调试执行,除非手动启动之:stopped
僵死态:zombie
三、命令的使用:
ps - report a snapshot of the current processes.
ps [options]:
选项有三种风格:UNIX、BSD、GNU
启动进程的方式:
系统启动过程中自动启动;与终端无关的进程;
用户通过终端启动;与终端相关的进程;
选项:
a: 所有与终端相关的进程;
x: 所有与终端无关的进程;
u: 以用户为中心来组织进程状态信息显示;
常用组全之一:aux
VSZ: 虚拟内存集;
RSS: Resident Size 常驻内存集;
C: CPU的占用百分比;
STAT:
R: 运行
S: 可中断睡眠
D: 不可中断睡眠
T: 停止
Z: 僵死
+: 前台进程:
l: 多线程进程;
N:低优先级进程;
<: 高优先级进程;
s: session leader会话领导者
-e: 显示所有进程;UNIX风格;
-f: 显示完整格式的进程信 息;
常用组合之二:-ef
-F: 显示完整格式的进程信息;
C: cpu utilization
PSR: 运行于哪颗CPU之上;
-H:以层级结构显示进程的相关信息;
top命令:
display Linux processess
排序:
P: 已占据CPU百分比排序;
M: 已占据内存百分比排序;
T: 累积占用CPU时间排序;
首部信息:
uptime信息:l命令开启或关闭;
tasks及cpu信息:t命令开启或闭;
内存信息:m命令开启或关闭;
cpu信息:数字1开启或关闭;
退出命令:q
修改刷新时间间隔:s
终止指定的进程:k
选项:
-d #: 指定刷新时间间隔,默认为2秒;
-b: 以批次方式显示;
-n #:显示多少批次;
第一行:系统时间、运行时长、登录用户数、平均负载(过去1分钟、5分钟、15分钟)
第二行:总任务数、运行数、睡眠数、停止数、僵死数
第三行:CPU: us:用户空间、sy:内核空间、ni:Nice值额外占用时间、id:空闲时间、wa:等待时 间、hi:硬中断消耗百分比、si:软中断消耗百分比、st:虚拟化分走的时间比
第四行:内存总数、使用的、空闲的、缓冲的
第五行:交换分区总数、使用的、空闲的、缓存的
dstat命令:
dstat [-afv] [options...] [delay [count]]
常用选项:
-c, --cpu: 显示cpu相关信息;
-C #,#...,total
-d, --disk: 显示磁盘的相关信息;
-D sda,sdb,...,total
-g: 显示page相关的速率数据;
-m: Memory的相关统计数据;
-n: Interface的相关统计数据;
-p: 显示process的相关统计数据;
-r: 显示io请求的相关的统计数据;
-s: 显示swapped的相关统计数据;
--tcp:显示tcp协议状态;
--udp:显示udp协议状态;
--raw:显示raw状态;
--socket:显示套接字状态;
--ipc:显示ipc状态;
--top-cpu: 显示最占用CPU的进程;
--top-io: 显示最占用io的进程;
--top-mem: 最占用内存的进程;
--top-lantency: 延迟最大的进程;
htop命令:top的升级版;
(系统不自带,需手动进行安装)
选项:
-d #:指定延迟时间间隔;
-u UserName:仅显示指定用户的进程;
-s COLUME: 以指定字段进行排序;
子命令:
l:显示选定的进程打开的的文件列表;
s:跟踪选定的进程的系统调用;
t:以层级关系显示各进程状态;
a:将选定的进程绑定至某指定的CPU核心;
按F1可进入帮助页:
也可在首页按F2进行CPU、MEM、SWAP的显示效果进行设置:
按t可以按层级树显示:
另:htop下用户也可以通过鼠标来快速定位要查看的进程!
原文地址:http://519137.blog.51cto.com/509137/1730528