LINUX的TOP命令

top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况。退出 top 的命令为 q (在 top 运行中敲 q 键一次)

可以选择按进程查看或者按用户查看,如想查看pso用户的进程内存使用情况:


[pso@10.120.64.173 A22-15-10.120.64.173]: /app/tomcat-callcenter2.0
0> top -u pso
top - 10:11:52 up 218 days, 12:52,  1 user,  load average: 0.09, 0.18, 0.13
Tasks: 126 total,   1 running, 125 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.3%us,  0.2%sy,  0.0%ni, 99.2%id,  0.2%wa,  0.0%hi,  0.2%si,  0.0%st
Mem:   8057552k total,  7905920k used,   151632k free,   397224k buffers
Swap:  8191996k total,    82588k used,  8109408k free,  2308104k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                     
13818 pso       20   0 15032 1240  928 R  0.3  0.0   0:00.21 top                                                                                                         
 5276 pso       20   0 98.1m 1964  972 S  0.0  0.0   0:00.02 sshd                                                                                                        
 5277 pso       20   0  105m 1856 1432 S  0.0  0.0   0:00.03 bash
[[email protected] A22-15-10.120.64.173]: /app/tomcat-callcenter2.0
0> top 

top - 10:37:37 up 218 days, 13:18,  1 user,  load average: 0.04, 0.11, 0.09
Tasks: 127 total,   1 running, 126 sleeping,   0 stopped,   0 zombie
Cpu(s):  1.8%us,  0.5%sy,  0.0%ni, 97.1%id,  0.0%wa,  0.0%hi,  0.5%si,  0.0%st
Mem:   8057552k total,  7911076k used,   146476k free,   395284k buffers
Swap:  8191996k total,    83008k used,  8108988k free,  2315284k cached

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                                     
20203 root      20   0 1253m 191m  10m S  3.3  2.4 189:18.27 java                                                                                                        
17854 app       20   0 5612m 4.3g  11m S  2.3 56.4 197:10.53 java                                                                                                        
 1369 root      20   0     0    0    0 S  0.3  0.0   2:46.16 jbd2/dm-2-8                                                                                                 
24581 root      20   0  402m 5576 2380 S  0.3  0.1 593:37.09 falcon-agent                                                                                                
    1 root      20   0 19364 1216  992 S  0.0  0.0   2:04.66 init                                                                                                        
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.16 kthreadd                                                                                                    
    3 root      RT   0     0    0    0 S  0.0  0.0   1:29.36 migration/0                                                                                                                                                                           

参数解释:
在命令行中输入 “top”,即可启动 top
top 的全屏对话模式可分为3部分:系统信息栏、命令输入栏、进程列表栏。

第一部分 – 最上部的 系统信息栏 :

top - 10:11:52 up 218 days, 12:52,  1 user,  load average: 0.09, 0.18, 0.13

top “10:37:37”为系统当前时刻;”up 218 days 系统运行 时间,格式为时:分”

    “1 user”为当前登录到系统的用户(登录到用户的终端数)– 同一个用户同一时间对系统多个终端的连接被视为多个用户连接到系统,用户数也将表现为终端的数目;
    “load average”为当前系统负载的平均值,后面的三个值分别为1分钟前、5分钟前、15分钟前进程的平均数,一般的可以认为这个数值超过 CPU 数目时,CPU 将比较吃力的负载当前系统所包含的进程;

平均负载的值越小代表系统压力越小,越大则代表系统压力越大。通常,我们会以最后一个数值,也就是15分钟内的平均负载作为参考来评估系统的负载情况。

对于只有单核cpu的系统,1.0是该系统所能承受负荷的边界值,大于1.0则有处理需要等待。

一个单核cpu的系统,平均负载的合适值是0.7以下。如果负载长期徘徊在1.0,则需要考虑马上处理了。超过1.0的负载,可能会带来非常严重的后果。

当然,多核cpu的系统是在前述值的基础上乘以cpu内核的个数。如对于多核cpu的系统,有N个核则所能承受的边界值为N.0。

可以使用如下命令来查看每个处理器的信息:

cat /proc/cpuinfo

如果只想计算有多少个cpu内核,可以使用如下命令:

[root@localhost ~]# cat /proc/cpuinfo | grep 'model name' | wc -l
24
Tasks: 126 total,   1 running, 125 sleeping,   0 stopped,   0 zombie

Tasks “127 total” 进程总数
    “1 running” 正在运行的进程数
    “125 sleeping” 睡眠的进程数
    “0 stoped” 停止的进程数
    “0 zombie” 僵尸进程数
    

Cpu(s):  1.8%us,  0.5%sy,  0.0%ni, 97.1%id,  0.0%wa,  0.0%hi,  0.5%si,  0.0%st

Cpus 分别表示了 CPU 当前的使用率;
1.8%us 用户空间占用CPU百分比
0.5%sy 内核空间占用CPU百分比
0.0%ni 用户进程空间内改变过优先级的进程占用CPU百分比
97.1%id 空闲CPU百分比
0.0%wa 等待输入输出的CPU时间百分比
0.0%hi

0.5%si

0.0%st

Mem:   8057552k total,  7905920k used,   151632k free,   397224k buffers

Mem 分别表示了内存总量、当前使用量、空闲内存量、以及缓冲使用中的内存量;
8057552k total 物理内存总量
7911076k used 使用的物理内存总量
146476k free 空闲内存总量
395284k buffers 用作内核缓存 的内存量

Swap:  8191996k total,    82588k used,  8109408k free,  2308104k cached

Swap 表示类别同Mem,但此处反映着交换分区(Swap)的使用情况。通常,交换分区(Swap)被频繁使用的情况,将被视作物理内存不足而造成的。
8191996k total交换区总量
83008k used 使用的交换区总量
8108988k free 空闲交换区总量
2315284k cached缓冲的交换区总量。
内存中的内容被换出到交换区,而后又被换入到内存,但使用过的交换区尚未被覆盖,
该数值即为这些内容已存在于内存中 的交换区的大小。 相应的内存再次被换出时可不必再对交换区写入。

第二部分 – 中间部分的内部命令提示栏:
  top 运行中可以通过 top 的内部命令对进程的显示方式进行控制。
内部命令如下:

<空格> 立刻刷新
  s 改变画面更新频率
  l 关闭/开启第一部分 top 信息的表示
  t 关闭/开启第一部分Tasks 和 Cpus 信息的表示
  m 关闭/开启第一部分Mem 和 Swap 信息的表示
  h 显示帮助
  n 设置在进程列表所显示进程的数量
c 切换显示命令名称和完整命令行
  q 退出 top
N 以 PID 的大小的顺序排列表示进程列表
  P 以 CPU 占用率大小的顺序排列进程列表
  M 以内存占用率大小的顺序排列进程列表
T 根据时间、累计时间排序
W 将当前设置写入~/.toprc文件中。这是写top配置文件的推荐方法。

第三部分 – 最下部分的进程列表栏:
以 PID 区分的进程列表将根据所设定的画面更新时间定期的更新

%CPU:
%MEM:
TIME+:
COMMAND:进程启动命令名称

进程信息区统计信息区域的下方显示了各个进程的详细信息。各列的含义如下:
列名 含义
PID 进程id
PPID 父进程id
RUSER Real user name
UID 进程所有者的用户id
USER 进程所有者的用户名
GROUP 进程所有者的组名
TTY 启动进程的终端名。不是从终端启动的进程则显示为 ?
PR 优先级
NI nice值。负值表示高优先级,正值表示低优先级
P 最后使用的CPU,仅在多CPU环境 下有意义
%CPU 上次更新到现在的CPU时间占用百分比 ,进程占用CPU的使用率

%MEM 进程使用的物理内存 百分比 , 进程使用的物理内存和总内存的百分比

TIME 进程使用的CPU时间总计,单位秒
TIME+ 进程使用的CPU时间总计,单位1/100秒 该进程启动后占用的总的CPU时间,即占用CPU使用时间的累加值。

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 任务标志,参考 sched.h

默认情况下仅显示比较重要的 PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND 列。

f 键可以选择显示的内容:按 f 键,可以进入编辑要显示字段的视图 ,显示列的列表,
按 a-z 即可显示或隐藏对应的列,有 * 号的字段会显示,无 * 号不显示,最后按回车键确定。

按 o 键可以改变列的显示顺序。

按小写的 a-z 可以将相应的列向右移动,而大写的 A-Z 可以将相应的列向左移动。最后按回车键确定。

按大写的 F 或 O 键,然后按 a-z 可以将进程按照相应的列进行排序。
大写的 R 键可以将当前的排序倒转。

按键b打开或关闭 运行中进程的高亮效果

按键x打开或关闭 排序列的高亮效果

shift + > 或 shift + < 可以向右或左改变排序列

top命令是一个功能十分强大的监控系统的工具,它的缺点是会消耗很多系统资源。

top命令可以监视指定用户,缺省情况是监视所有用户的进程。如果想查看指定用户的情况,在终端中按“U”键,然后输入用户名,系统就会切换为指定用户的进程运行界面。
pmap
可以根据进程号查看进程相关信息占用的内存情况

[pso@10.120.64.173 A22-15-10.120.64.173]: /app/tomcat-callcenter2.0
0> pmap -d 17854
17854:   /opt/jdk1.6.0_37/bin/java -Djava.util.logging.config.file=/app/tomcat-callcenter2.0/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms4g -Xmx4g -XX:PermSize=256m -XX:MaxPermSize=256m -XX:+DisableExplicitGC -Xss512k -XX:+PrintGCDetails -XX:+PrintGCApplicationStoppedTime -XX:+PrintGCApplicationConcurrentTime -XX:+PrintHeapAtGC -XX:+PrintGCTimeStamps -Xloggc:/app/tomcat-callcenter2.0/logs/gc.log -XX:+Hea
Address           Kbytes Mode  Offset           Device    Mapping
mapped: 0K    writeable/private: 0K    shared: 0K

猜你喜欢

转载自blog.csdn.net/qq_36946274/article/details/80928248
今日推荐