题记

对于top命令来说,基本是都是linux命令入门中,第一个使用的命令,在windows中电脑如果卡顿,回去任务栏中查看cpu和内存的使用情况。top命令实现的就是这个重要的功能。

在系统维护的过程中,随时可能有需要查看 CPU 使用率,并根据相应信息分析系统状况的需要。在 CentOS 中,可以通过 top 命令来查看 CPU 使用状况。运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等。退出 top 的命令为 q (在 top 运行中敲 q 键一次)。

top命令结果解析

top命令中展现的信息非常的丰富:

linux查看端口号占用命令-top-冯金伟博客园

最上部的 系统信息栏 :

第一行(top):
“00:11:04”为系统当前时刻;
“3:35”为系统启动后到现在的运作时间;

“2 users”为当前登录到系统的用户,更确切的说是登录到用户的终端数 -- 同一个用户同一时间对系统多个终端的连接将被视为多个用户连接到系统,这里的用户数也将表现为终端的数目;

“load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;
第二行(Tasks):
“59 total”为当前系统进程总数;

“1 running”为当前运行中的进程数;

“58 sleeping”为当前处于等待状态中的进程数;

“0 stoped”为被停止的系统进程数;

“0 zombie”为被复原的进程数;
第三行(Cpus):
分别表示了 CPU 当前的使用率;
第四行(Mem):
分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
第五行(Swap):
表示类别同第四行(Mem),但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。

进程关键信息的解释

PID:进程的ID
USER:进程所有者
PR:进程的优先级别,越小越优先被执行
NInice:值
VIRT:进程占用的虚拟内存
RES:进程占用的物理内存
SHR:进程使用的共享内存
S:进程的状态。S表示休眠,R表示正在运行,Z表示僵死状态,N表示该进程优先值为负数
%CPU:进程占用CPU的使用率
%MEM:进程使用的物理内存和总内存的百分比
TIME+:该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。
COMMAND:进程启动命令名称

top 参数解释

-b:以批处理模式操作; 
-c:显示完整的治命令; 
-d:屏幕刷新间隔时间; 
-I:忽略失效过程; 
-s:保密模式; 
-S:累积模式; 
-i<时间>:设置间隔时间; 
-u<用户名>:指定用户名; 
-p<进程号>:指定进程; 
-n<次数>:循环显示的次数。

top交互命令

h:显示帮助画面,给出一些简短的命令总结说明; 
k:终止一个进程; 
i:忽略闲置和僵死进程,这是一个开关式命令; 
q:退出程序; 
r:重新安排一个进程的优先级别; 
S:切换到累计模式; 
s:改变两次刷新之间的延迟时间(单位为s),如果有小数,就换算成ms。输入0值则系统将不断刷新,默认值是5s; 
f或者F:从当前显示中添加或者删除项目; 
o或者O:改变显示项目的顺序; 
l:切换显示平均负载和启动时间信息; 
m:切换显示内存信息; 
t:切换显示进程和CPU状态信息; 
c:切换显示命令名称和完整命令行; 
M:根据驻留内存大小进行排序; 
P:根据CPU使用百分比大小进行排序; 
T:根据时间/累计时间进行排序; 
w:将当前设置写入~/.toprc文件中。

内存相关命令 free

在Linux下查看内存我们一般用free命令:

linux查看端口号占用命令-top-冯金伟博客园

下面是对这些数值的解释:

total:总计物理内存的大小。
used:已使用多大。
free:可用有多少。
Shared:多个进程共享的内存总额。
Buffers/cached:磁盘缓存的大小。
第三行(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。

区别:第二行(mem)的used/free与第三行(-/+ buffers/cache) used/free的区别。

这两个的区别在于使用的角度来看,第一行是从OS的角度来看,因为对于OS,buffers/cached 都是属于被使用,所以他的可用内存是16176KB,已用内存是3250004KB,其中包括,内核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是从应用程序角度来看,对于应用程序来说,buffers/cached 是等于可用的,因为buffer/cached是为了提高文件读取的性能,当应用程序需在用到内存的时候,buffer/cached会很快地被回收。
所以从应用程序的角度来说,可用内存=系统free memory+buffers+cached。

接下来解释什么时候内存会被交换,以及按什么方交换。 当可用内存少于额定值的时候,就会开会进行交换。
如何看额定值:

cat /proc/meminfo

/proc中放了很多关于系统的信息,后面会专门讲述。

free命令参数

-b:以Byte为单位显示内存使用情况; 
-k:以KB为单位显示内存使用情况; 
-m:以MB为单位显示内存使用情况; 
-o:不显示缓冲区调节列; 
-s<间隔秒数>:持续观察内存使用状况; 
-t:显示内存总和列; 
-V:显示版本信息。

更多教程:阿猫学编程