top 命令

top 

用于交互查看进程和系统相关属性信息,默认为 3 秒刷新一次。 

[root@xuegod63 ~]# top                #top 弹出的每行信息含意如表  10-2  所示。 

第一行内容和 uptime 弹出的信息一样。 

进程和 CPU 的信息( 第二、三行),如图  10-8  所示。 

image.png

图  10-8  进程和 CPU 的信息

1.   当有多个 CPU 时,这些内容可能会超过两行,内容如表  10-2  所示。 

Tasks: 481 total 进程总数
1 running 正在运行的进程数
480 sleeping 睡眠的进程数
0 stopped 停止的进程数
0 zombie 僵尸进程数
Cpu(s): 0.0% us 系统用户进程使用CPU百分比。
0.0% sy 内核中的进程占用CPU百分比
0.0% ni 用户进程空间内改变过优先级的进程占用CPU百分比
98.7% id 空闲CPU百分比
0.0% wa

cpu等待I/0完成的时间总量。

测试:

终端1:执行:top

终端2:dd if=/dev/zero of=/a.txt count=10 bs=100M

终端3:dd if=/dev/zero of=/a.txt count=10 bs=100M

如下:

image.png

0.0% hi(了解)

硬中断消耗时间

硬中断,占的CPU百分比。1. 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或设备集都有它自己的IRQ(中断请求)。基于IRQ,CPU可以将相应的请求分发到对应的硬件驱动上(注:硬件驱动通常是内核中的一个子程序,而不是一个独立的进程)。# hi -> Hardware IRQ: The amount of time the CPU has been servicing hardware interrupts.

0.0% si(了解)

软中断消耗时间

软中断,占的CPU百分比。1. 通常,软中断是一些对I/O的请求。这些请求会调用内核中可以调度I/O发生的程序。对于某些设备,I/O请求需要被立即处理,而磁盘I/O请求通常可以排队并且可以稍后处理。根据I/O模型的不同,进程或许会被挂起直到I/O完成,此时内核调度器就会选择另一个进程去运行。I/O可以在进程之间产生并且调度过程通常和磁盘I/O的方式是相同。# si -> Software Interrupts.: The amount of time the CPU has been servicingsoftware interrupts.
0.0 st (steal 偷) st:虚拟机偷取物理的时间。比如:物理机已经运行了KVM,XEN虚拟机。KVM虚拟机占用物理机的cpu时间

图  10-8  进程和 CPU 的信息 

2.   内存信息(第四五行),如图  10-9  所示。 

image.png

图  10-9  内存信息 

内容如表  10-3  所示  。 

Mem: 2033552k total  

物理内存总量。

340392k used  

使用的物理内存总量。 

1376636k free 

 空闲内存总量。 

316524k buff/cache  

用作内核缓存的内存量。 和 free -k  一个意思。

Swap: 2017948k total  

交换区总量。 

0k used  

使用的交换区总量。 

192772k free  

空闲交换区总量。 
1518148 avail Mem   总的可利用内存是多少。

 表  10-3  内存信息表 

注:如果 swap 分区,被使用,那么你的内存不够用了。

 

3.   第 7 行进程信息,如图  10-10  所示。 

image.png

图  10-10  进程相关 

相关含意如表  10-4  所示。 

列名  含义 
PID  进程 id。 
USER  进程所有者的用户名。
PR  优先级(由内核动态调整),用户不能。
NI 

进程优先级。  nice 值。负值表示高优先级,正值表示低优先级,用户可以

自己调整。

VIRT(virtual memory usage)

虚拟内存,是进程正在使用的所有内存(ps 中标为 VSZ)。 

VIRT:virtual memory usage  虚拟内存。 

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等。 

2、假如进程申请 100m 的内存,但实际只使用了 10m,那么它会增长

100m,而不是实际的使用量。

RES(resident memory usage)

是进程所使用的物理内存。实际实用内存(ps 中标为 RSS)。

RES:resident memory usage  常驻内存。 

1、进程弼前使用的内存大小,但不包括 swap out。 

2、包含其他进程的共享。 

3、如果申请 100m 的内存,实际使用 10m,它只增长 10m,不 VIRT 相反。 

4、关于库占用内存的情况,它只统计加载的库文件所占内存大小。

SHR 

共享内存大小,单位 kb。 

SHR:shared memory  共享内存。 

1、除 M 了自身进程的共享内存,也包括其他进程的共享内存。 

2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小。 

3、计算某个进程所占的物理内存大小公式:RES  –  SHR。 

4、swap out 后,它将会降下来。

进程状态。 

                D=不可中断的睡眠状态。 

                R=运行中或可运行。 

                S=睡眠中。 

                T=已跟踪/已停止。 

                Z=僵停。

%CPU  上次更新到现在的 CPU 时间占用百分比。
%MEM  进程使用的物理内存百分比。
TIME+  进程使用的 CPU 时间总计,单位 1/100 秒。 
COMMAND  命令名/命令行。

表  10-4  进程信息表 

top 快捷键: 

(1)   默认 3s 刷新一次,按 s 修改刷新时间。 

(2)   按空格:立即刷新。 

(3)   q 退出。 

(4)   P:按 CPU 排序。 

(5)   M:按内存排序。 

(6)   T 按时间排序。 

(7)   p:进程 IP,查看某个进程状态。 

(8)   数字键 1:显示每个内核的 CPU 使用率。 

(9)   u/U:指定显示的用户。 

(10)   h:帮助。 

例 10.5:使用 top 动态只查看某个或某些进程的信息。 

找到进程 ID 

[root@localhost ~]# ps -axu | grep vim 

Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.8/

root            9667    0.0    0.2 143620    3344 pts/1        S<+    19:15      0:00 vim a.txt 

[root@localhost ~]# top -p 9667    #通过 ps -axu | grep vim 命令得知其他 PID,可以使用 -p 选项直接指定其 PID 进行查看。

版权声明:
作者:WaterBear
链接:https://l-t.top/1351.html
来源:雷霆运维
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
< <上一篇
下一篇>>