发布时间:2014-09-05 16:46:14作者:知识屋
top:动态观察进程的变化情况
ps是某个时间点的进程状态,而top则是动态实时观察进程的运行状态。
我们把top命令的结果分成三部分来了解,大致就是下面这个样子的。
第一部分是系统整体的统计信息。
第一行是任务队列信息(top),同uptime 命令的执行结果。其内容如下:
top –21:50:37 当前时间
up 2:01 系统运行时间,格式为时:分
1 user 当前登录用户数
load average: 0.00, 0.00, 0.00 系统负载,即任务队列的平均长度。
三个数值分别为1分钟、5分钟、15分钟前到现在的平均值。
这个负载的标准是多少,好像大家的说法不太一致,有的说是不能超过CPU的核数,如果超过了,说明负载就高了。
还有的说是三个数值加起来除以3,不能大于0.6,如果大于了就说明负载高了,至于什么样的标准,只能在服务器上观察吧?大家也可以就此问题,来探讨一番。
第二行为进程(Tasks)信息,内容如下:
Tasks: 97 total 进程总数
1 running 正在运行的进程数
96 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
第三行为Cpu(s)的信息。内容如下:
Cpu(s): 0.7%us (user mode)用户所占用CPU百分比
0.3%sy (system mode)内核所占用CPU百分比
0.0%ni (nice)用户进程内改变过优先级的进程占用CPU百分比
99.7%id (idle task) 空闲CPU百分比
0.0%wa (I/O waiting)等待输入输出的CPU时间百分比(I/O 产生的问题,会严重的影响您的服务器性能,因为I/O是消耗CPU的)
0.0%hi (servicing IRQs)
0.3%si (servicing soft IRQs)
0.0%st (steal (time given to other DomU instances))
以上三个,和IRQ(IRQ的英文全称是Interrupt Request,翻译成中文就是“中断请求”)有关,因为本人非计算机专业,所以这些东西对我来说,有点难度,所以给大家推荐个文章:Work Load balancing with IRQ SMP Affinity, 可以帮助大家理解一下。而系统中的中断信息在/proc/irq/里面,而中断请求在/proc/interrupts ,有想深入研究的,可以自己查阅其他的相关资料。
第四行(Mem)为内存信息。内容如下:
Mem: 245408k total 物理内存总量
215148k used 使用的物理内存总量
30260k free 空闲内存总量
58532k buffers 用作内核缓存的内存量
第五行(Swap)为交换区信息。内容如下:
Swap: 262136k total 交换区总量
0k used 使用的交换区总量
262136k free 空闲交换区总量
52320k cached 缓冲的交换区总量。
第二部分是TOP内部命令提示栏:
top 的内部命令可以对进程的显示方式进行控制。使用方法就是,在top命令状态下,直接输入相应的内部命令,常用的以下几个:
s 改变top命令的刷新频率(默认是3秒)
Change delay from 3.0 to:这时候输入相应的数字就OK
l 关闭或开启第一行top 信息
t 关闭或开启第二行Tasks 和第三行Cpus 信息
m 关闭或开启第一部分第四行Mem 和 第五行Swap 信息
N 以PID 的大小的顺序排列表示进程列表
P 以CPU 占用率大小的顺序排列进程列表
M 以内存占用率大小的顺序排列进程列表
R 对排列进行反转
u 显示指定用户的进程,默认是全部用户的进程
c 显示进程的全路径,默认是只有进程名
n 或者# 设置在进程列表所显示进程的数量,但最多是显示满屏
f 调整top命令显示列表项。如增加GROUP列或UID列等等。但在下次使用top命令,还是原来成默认的。
k 结束进程
r 调整进程的优先级(Linux和AIX是从-20到19,HP-UX为0到39),至于如何得到的,可以通过man nice来查看。
h 显示帮助
q 退出top
以上的内部命令,建议大家动手试试,这样学习起来就容易多了!记住,学习Linux一定要多动手。
第三部分的进程列表信息区
统计信息区域的下方显示了各个进程的详细信息。首先来认识一下各列的含义。
列名 含义
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级(Linux和AIX是从-20到19,HP-UX为0到39)
P 最后使用的CPU,仅在多CPU环境下有意义
%CPU 上次更新到现在的CPU时间占用百分比
TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒
%MEM 进程使用的物理内存百分比
VIRT 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
SWAP 进程使用的虚拟内存中,被换出的大小,单位kb。
RES 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
CODE 可执行代码占用的物理内存大小,单位kb
DATA 可执行代码以外的部分(数据段+栈)占用的物理内存大小,单位kb
SHR 共享内存大小,单位kb
nFLT 页面错误次数
nDRT 最后一次写入到现在,被修改过的页面数
S 进程状态
D=不可中断的睡眠状态
R=运行
S=睡眠
T=跟踪/停止
Z=僵尸进程
COMMAND 命令名/命令行
WCHAN 若该进程在睡眠,则显示睡眠中的系统函数名
Flags 任务标志
默认情况下仅显示比较重要的PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。可以通过我们上面所说的内部的f命令,来调整列表选项。
下面介绍两个top常用的选项,
-b :以批次的方式执行top命令,通常会搭配生定向来将批次的结果输出为文件。
-n :与-b 搭配,就是把多少次top的输出。
如
[root@yufei ~]# top -b -n 1 > topfile
然后我们就可以通过
[root@yufei ~]# more topfile
来查看整个top出来的内容了,弥补了我们前面所说的,显示最多是占满全屏,我们可以通过上面的两个参数组合来查看全部内容了。
pgrep过滤进程信息
pgrep他是通过程序的名字来查询进程的工具,一般是用来判断程序是否正在运行。在服务器的配置和管理中,这个工具常被应用,简单明了。
格式:pgrep 参数选项 程序名
常用参数
-l 列出程序名和进程ID;
-o 进程起始的ID;
-n 进程终止的ID;
-U 用户的进程ID;
[root@yufei ~]# pgrep -lo httpd
1628 httpd
[root@yufei ~]# pgrep -ln httpd
1637 httpd
[root@yufei ~]# pgrep -l httpd
1628 httpd
1630 httpd
1631 httpd
1632 httpd
1633 httpd
1634 httpd
1635 httpd
1636 httpd
1637 httpd
查看某个用户的进程
[root@yufei ~]# pgrep -lU apache
1630 httpd
1631 httpd
1632 httpd
1633 httpd
1634 httpd
1635 httpd
1636 httpd
1637 httpd
linux一键安装web环境全攻略 在linux系统中怎么一键安装web环境方法
Linux网络基本网络配置方法介绍 如何配置Linux系统的网络方法
Linux下DNS服务器搭建详解 Linux下搭建DNS服务器和配置文件
对Linux进行详细的性能监控的方法 Linux 系统性能监控命令详解
linux系统root密码忘了怎么办 linux忘记root密码后找回密码的方法
Linux基本命令有哪些 Linux系统常用操作命令有哪些
Linux必学的网络操作命令 linux网络操作相关命令汇总
linux系统从入侵到提权的详细过程 linux入侵提权服务器方法技巧
linux系统怎么用命令切换用户登录 Linux切换用户的命令是什么
在linux中添加普通新用户登录 如何在Linux中添加一个新的用户
2012-07-10
CentOS 6.3安装(详细图解教程)
Linux怎么查看网卡驱动?Linux下查看网卡的驱动程序
centos修改主机名命令
Ubuntu或UbuntuKyKin14.04Unity桌面风格与Gnome桌面风格的切换
FEDORA 17中设置TIGERVNC远程访问
StartOS 5.0相关介绍,新型的Linux系统!
解决vSphere Client登录linux版vCenter失败
LINUX最新提权 Exploits Linux Kernel <= 2.6.37
nginx在网站中的7层转发功能