在Linux上,一切皆文件。同样,系统的实时状态信息也通过文件的形式保存在文件系统上。在/proc/中,保存的就是内核中的状态信息,而在/proc/#中(#为PID)保存了进程的信息,我们可以通过调用工具来查看这些文件中保存的信息从而来管理系统的进程。本次,分析的命令有top、htop、dstat和ps共4个命令。
一、top命令的使用
查看系统进程的实时状态。其格式是
top [d|b|n]
-d #:指定刷新时间间隔,默认为3秒
-b:以批次方式显示
-n #:显示多少批次
~]# top
相关名词解释:
1)第一行:
17:10:58:表示系统当前时间
up 3:10:表示系统运行时间,期间没有重启
3 users:表示登录系统的用户数量
load average: 0.00, 0.01, 0.05:表示过去1min、5mins、15mins平均负载。load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑cpu的数量,结果高于5的时候就表明系统在超负荷运转了。
2)第二行:
Tasks: 364 total:表示当前系统内共有多少个进程
1 running:表示当前系统内共有多少个正在运行的进程
363 sleeping:表示当前系统内共有多少个睡眠状态的进程
0 stopped:表示当前系统内共有多少个停止的进程
0 zombie:表示当前系统内共有多少个僵尸进程
3)第三行:
us:用户空间占cpu百分比
sy:系统(内核)空间占cpu百分比
ni:用户空间内被ni值改变过优先级的进程的百分比
id:空闲的cpu百分比
wa:等待io占用的cpu百分比
hi:硬中断占用的cpu百分比
si:软中断占用的cpu百分比
st:被虚拟化所偷走占用的cpu百分比
4)第四行:
KiB Mem :以kb为单位表示物理内存大小
1003184 total:总的物理内存大小
636564 free:空闲的物理内存大小
156656 used:已经使用的物理内存大小
209964 buff/cache:用于缓冲和缓存的物理内存大小
5)第五行:
KiB Swap:以kb为单位表示虚拟内存大小
2097148 total:总的虚拟内存大小
2097148 free:空闲的虚拟内存大小
0 used:已经使用虚拟内存大小
659500 avail Mem:可使用的内存大小
6)第七行:
PID:进程的id号
USER:调用进程的用户
PR:进程的优先级
NI:进程的nice值
VIRT:进程使用的虚拟内存大小,VIRT=SWAP+RES
RES:进程的常驻内存大小,RES=CODE+DATA
SHR:进程的共享内存大小
S:进程的状态。R:running;S:interruptable sleeping;D:uninterruptable sleeping;T:stopped;Z:zombie;状态后一般还跟参数:+:前台进程;l:多线程进程;N:低优先级进程;<:高优先级进程;s:session leader
%CPU:进程占用cpu的使用率百分比
%MEM:进程占用的物理内存百分比
TIME+:进程使用cpu的时间
COMMAND:进程的名称
交互操作技巧
排序:
P:以占据CPU百分比排序
M:以占据内存百分比排序
T:以累计占用CPU时间排序
首部信息显示:
uptime信息:l命令
task及cpu信息:t命令
内存信息:m命令
内部子命令:
退出命令:q
修改刷新时间间隔:s
终止指定的进程:k
二:htop命令
htop命令可以看作是top命令的升级版,它支持鼠标操作,界面更美观,功能更强大。它的使用格式为:
htop [d|u|s]
选项:
-d #:指定延迟时间间隔;
-u USERNAME:仅显示指定用户的进程
-s COLUME:以指定字段进行排序
~]# htop
htop命令的名词和top的一样,接下来讲讲其内部子命令:
l:显示选定的进程打开的文件列表
s:跟踪选定的进程的系统调用
t:以层级关系显示各进程状态
a:将选定的进程绑定至某指定的cpu核心
三、dstat命令
dstat命令可以用来生成系统资源的统计信息,它的使用格式为:
dstat [-afv] [options..] [delay(延迟几秒) [count(共显示几次)]]
常用选项:
-c,--cpu:显示cpu相关信息
-C#,..total
-d,--disk:显示磁盘的相关信息
-D sda...
-g:显示page相关的速率数据
-m:显示Memory的相关统计数据
-n:Interface的相关统计数据
-p:显示process的相关统计数据
-r:显示io请求的相关统计数据
-s:显示swap的相关统计数据
-tcp:显示tcp连接状态
-udp:显示udp连接状态
-raw:显示raw套接字状态
-socket:显示套接字状态
-ipc:显示ipc状态
--top-cpu:显示最占用cpu的进程
--top-io:显示最占用io的进程
--top-mem:显示最占用内存的进程
--top-lanterncy:延迟最大的进程
~]# dstat 1 5
四、ps命令
ps命令可以查看系统中的进程信息,它的格式为:
ps [options]
options根据不同的分类,它有3种风格
UNIX options, which may be grouped and must be preceded by a dash(-).
BSD options, which may be grouped and must not be used with a dash().
GNU long options, which are preceded by two dashes(--).
常用组合之一:aux
a:所有与终端相关的进程
x:所有与终端无关的进程
u:以用户为中心组织进程状态信息显示
~]# ps aux
常用组合之二:-ef
-e:显示所有进程
-f:显示完整格式的进程信息
~]# ps -ef
常用组合之三:-eFH
-F:显示完整格式的进程信息
-H:以层级结构显示进程的相关信息
参数:
PSR:表示运行于哪个cpu上
C:表示cpu占用百分比
~]# ps -eFH
常用组合之四:-eo,axo
o field1,field2,...:自定义要显示的字段列表,以逗号分隔;
常用的field:pid,ni,priorty(优先级),psr,pcpu,stat,comm,tty,ppid,rtpri(实时优先级)
~]# ps -eo pid,ni,comm
五:总结
以上命令基本为常用的进程查看命令,并没有管理命令。
参考:www.magedu.com
http://letitbe1028.blog.51cto.com/7901525/1699260
http://www.jb51.net/LINUXjishu/151995.html