当前位置: 首页 > 编程日记 > 正文

Linux 命令 top 学习总结

本文简介
    概要: 学习总结 Linux 下的 top 命令
    版本: Debian 5(Lenny), top: procps version 3.2.7
    日期: 2010-11-17
    永久链接: http://sleepycat.org/linux/linuxcommand/top.html


I. 概述

学习总结 top 命令。主要学习自 man 手册。

Linux 下 top 命令:
# top
top - 00:34:31 up 169 days,  6:05, 16 users,  load average: 0.01, 0.01, 0.00
Tasks:  97 total,   1 running,  96 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:    126396k total,   123312k used,     3084k free,    40908k buffers
Swap:   369452k total,     5912k used,   363540k free,    18244k cached

PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
1993 root      20   0  8668 2584 2468 S    1  2.0 131:31.81 nmbd
15774 hw    20   0  2388 1116  876 R    1  0.9   0:00.08 top
1 root      20   0  1980  604  520 S    0  0.5   5:49.12 init
2 root      15  -5     0    0    0 S    0  0.0   0:00.00 kthreadd
3 root      RT  -5     0    0    0 S    0  0.0   0:12.78 migration/0
4 root      15  -5     0    0    0 S    0  0.0   1:57.97 ksoftirqd/0
5 root      RT  -5     0    0    0 S    0  0.0   0:00.00 watchdog/0
6 root      RT  -5     0    0    0 S    0  0.0   0:04.78 migration/1
7 root      15  -5     0    0    0 S    0  0.0   2:29.45 ksoftirqd/1
8 root      RT  -5     0    0    0 S    0  0.0   0:00.10 watchdog/1
9 root      15  -5     0    0    0 S    0  0.0  11:29.26 events/0
10 root      15  -5     0    0    0 S    0  0.0  11:50.89 events/1
11 root      15  -5     0    0    0 S    0  0.0   0:00.02 khelper
44 root      15  -5     0    0    0 S    0  0.0   2:37.22 kblockd/0
45 root      15  -5     0    0    0 S    0  0.0   1:51.64 kblockd/1

以下是详细解释。


II. 第一行, 系统信息.
top - 01:33:08 up 169 days,  7:03, 16 users,  load average: 0.07, 0.02, 0.00

- 01:33:08
    当前时间 01:33:08

up 169 days,  7:03
    系统总运行时间: 169天7小时3分钟

16 users
    当前登陆的用户数: 16

load average
    系统平均负载.
    分别说明上一分钟、最后五分钟以及最后十五分钟的系统负载均值

在多处理器系统中,负载均值是基于内核的数量决定的。
    以 100% 负载计算,1.00 表示单个处理器,而 2.00 则说明有两个双处理器,那么 4.00 就说明主机具有
四个处理器。

也就是说,对双核处理器,值为2.00则表示100%负载。

关于 load average 的详细解释的英文出处及中文翻译:
    http://blog.scoutapp.com/articles/2009/07/31/understanding-load-averages
    http://doc.chinaunix.net/linux/201004/507455.shtml


III. 第二行, CPU信息.
Cpu(s):  0.0%us,  0.2%sy,  0.0%ni, 99.8%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

点数字键1可以展开或合上多个CPU, 如下:
    Cpu0  :  0.0%us,  0.0%sy,  0.0%ni,100.0%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
    Cpu1  :  0.0%us,  0.3%sy,  0.0%ni, 99.7%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st

各个参数值显示的都是百分比。

us  -- User CPU time
    CPU花在未调整优先级的(not niced)用户进程的时间。
    The  time  the  CPU  has spent running users’ processes that are not niced.

注: nice 命令: 调整程序运行的优先级(范围 -20 到 19,越大,优先级越高)

sy  --  System CPU time
    CPU花在内核及其进程上的时间。
    The time the CPU has spent running the kernel and its processes.

ni  --  Nice CPU time    CPU花在调整过优先级的(niced)用户进程的时间。
    The time the CPU has spent running users’ proccess  that  have  been niced.

wa  --  iowait
    等待I/O结束的CPU时间。
    Amount of time the CPU has been waiting for I/O to complete.

hi  --  Hardware IRQ
    CPU花在硬件中断的时间。
    The amount of time the CPU has been servicing hardware interrupts.

si  --  Software Interrupts
    CPU花在软件中断的时间。
    The amount of time the CPU has been servicing software interrupts.

st  --  Steal Time
    The amount of CPU ’stolen’ from this virtual machine by the hypervisor for other tasks (such
 as running another virtual machine).


IV. 内存信息
Mem:    126396k total,   123312k used,     3084k free,    40908k buffers
Swap:   369452k total,     5912k used,   363540k free,    18244k cached

显示物理内存与交换内存使用情况。

先详细了解下 free 命令:
tester@debian01:~$ free -m
             total       used       free     shared    buffers     cached
Mem:            60         56          3          0          3         35
-/+ buffers/cache:         17         42
Swap:          172          0        171


系统内存信息(单位为Mb)详解:


Mem(表示物理内存使用概况):

Mem: total = 60, 表示总共物理内存为 60M (其实是 64M 的内存, 单位转换造成误差) (total = used + free, 即: 60 = 56 + 3; 因为省略了小数位, 可能存在误差)

Mem: used = 56, 表示总共已经使用了 56M (这个数值是从内核的角度来看的. 也就是说, 所有 buffers 和 cached 所占用的内存也都被当作已经使用. 其实这些部分还是可以分给应用程序的)

Mem: free = 3, 表示目前空闲 3M. (同样, 这个数值是从内核的角度来看的. 也就是说, 所有 buffers 和 cached 所占用的内存也都被当作已经使用)

Mem: shared = 0, 表示应用程序的共享内存(这一块还不是很理解)

Mem: buffers = 2, 表示 buffers 缓冲使用了 2M (块设备的读写缓冲区)

Mem: cached = 35, 表示 cache 缓冲使用了 35M (文件系统的cache)


-/+ buffers/cache(表示如果将 buffers 和 cached 的内存看作可用的话, 内存使用情况):

-/+ buffers/cache: used = 17, 表示不考虑 buffers 和 cached 的内存, 系统实际使用了 17 M. (56 - 3 - 35, 误差来源于省略掉的小数位)

-/+ buffers/cache: free = 42, 表示不考虑 buffers 和 cached 的内存, 系统实际空闲了 42 M. (3 + 3 + 35, 误差来源于省略掉的小数位) (注: 这一组值很重要, 可以作为系统空闲情况的重要参考)


Swap(表示交换内存使用概况):

"total/used/free" 分别表示 "总共/已使用/空闲" 状况.


而 top 命令中的内存信息, 只是将 -/+ buffers/cache 省掉(其实我们可以自己算), 并将 cached 挪到了下一行而已.


V. 各列名称解释

PID
    进程ID(Process Id)

USER
    任务所有者(The effective user name of the task’s owner)

PR
    优先级(Priority)

NI
    优先值(Nice value)
    任务的优先值。正值表示高优先级,负值表示低优先级(范围 -20 到 19)。值为零则表示不会调整任务分配
的优先级。
    The nice value of the task.  A negative nice value means higher pri‐ority, whereas a positive nice value means lower priority. 
    Zero  in this field simply means priority will not be adjusted in determining a task’s dispatchability.

VIRT
    虚拟内存, 单位: Kb. [Virtual Image (kb)]
    任务所占用的虚拟内存。包含了所有的代码、数据、共享库及交换页面。
    The  total  amount  of virtual memory used by the task. 
    It includes all code, data and  shared  libraries  plus  pages  that  have  been swapped out.

RES
    物理内存, 单位: Kb. [Resident size (kb)]
    任务所占用的非交换物理内存。
    The non-swapped physical memory a task has used.
    注: 这一组内存信息最重要, %MEM 所显示的百分比就是由此列的值得出.

SHR
    共享内存, 单位: Kb. [Shared Mem size (kb)]
    任务所占用的共享内存。它反映了可以与其他进程共享的内存的大小。
    The amount of shared memory used by a task. 
    It simply reflects memory that could be potentially shared with other processes.


-------- 关于 VIRT/RES/SHR 的详解区别, 请参考如下地址 -------------------

http://blog.csdn.net/dingpeng1978/article/details/6559232

VIRT:virtual memory usage

1、进程“需要的”虚拟内存大小,包括进程使用的库、代码、数据等
    2、假如进程申请100m的内存,但实际只使用了10m,那么它会增长100m,而不是实际的使用量

RES:resident memory usage 常驻内存

1、进程当前使用的内存大小,但不包括swap out
    2、包含其他进程的共享
    3、如果申请100m的内存,实际使用10m,它只增长10m,与VIRT相反
    4、关于库占用内存的情况,它只统计加载的库文件所占内存大小

SHR:shared memory

1、除了自身进程的共享内存,也包括其他进程的共享内存
    2、虽然进程只使用了几个共享库的函数,但它包含了整个共享库的大小
    3、计算某个进程所占的物理内存大小公式:RES – SHR
    4、swap out后,它将会降下来

DATA

1、数据占用的内存。如果top没有显示,按f键可以显示出来。
    2、真正的该程序要求的数据空间,是真正在运行中要使用的。

-----------------------------------------------------------------------


S
    进程状态 [Process Status]
    状态值所对应的意义如下:
        D = 不可中断的休眠 [uninterruptible sleep]
        R = 运行 [running]
        S = 休眠 [sleeping]
        T = 回溯或停止 [traced or stopped]
        Z = 僵尸 [zombie]

%CPU
    CPU 使用率 [CPU usage]

%MEM
    物理内存使用率 [Memory usage (RES)], 以 RES 列的值为标准.

TIME+
    CPU Time, hundredths (精确到1/100秒,如11:29.46=11分钟, 29.46秒)
    任务开启后所占用的总的CPU时间。

COMMAND
    任务名称


VI. 常用参数:

top -d 1
    每隔一秒刷新一次。(默认为3秒)
    在 top 运行过程中, 也可以通过输入 d  或 s 重新设置刷新值。
    Delay time interval as:  -d ss.tt (seconds.tenths)


top -c
    对于COMMAND列,显示包含路径的命令行,而不只是程序名称。
    如: 不使用 -c 显示为 smbd, 加 -c 则为 /usr/sbin/smbd
   
    在 top 运行过程中可以通过输入 c 切换此状态。
    Command line/Program name toggle
    Starts top with the last remembered ’c’ state reversed. 
    Thus,  if top was displaying command lines, now that field will show program names, and
visa versa. 
    See the ’c’ interactive command for  additional information.


top -S
    累计模式
    累计模式开启,则每个进程的CPU时间(TIME+),表示它及它的关闭的子进程所用的时间。
    在top命令运行时,可以通过输入 S 切换累计模式状态。
    Cumulative time mode toggle
    Starts  top  with  the  last  remembered ’S’ state reversed. 
    When’Cumulative mode’ is On, each process is listed with the cpu  time that  it and its dead
 children have used. 
    See the ’S’ interactive command for additional information regarding this mode.


VII. 交互命令

top 运行时的交互命令:

M
        按 %MEM 由高到低排列

N
        按 PID 由高到低排列

P
        按 %CPU 由高到低排列

T
        按 TIME+ 由高到低排列


    s
        更改刷新频率,输入秒数。

d
        同 s 一样。

S
        开/关累计模式

c
        显示/不显示程序全路径 [参看 top -c]

i
        忽略闲置、僵死的进程

u
        输入用户名,只显示此用户的进程

H
        显示/不显示线程

>
        向后翻页

<
        向前翻页

q
        退出

f
        选择要显示的列。直接输入小写索引字母即可。点击任意其他键返回(如回车)。

选中的会改为大写并加*号。如下:
            * A: PID        = Process Id

未选中的(即不显示的), 状态为小写,如下:
            a: PID        = Process Id


    o
        改变显示列的顺序,用法与上相同。

输入大写索引字母,则会往前移动。
            输入小写索引字母,则会往后移动。

F
        选择排序的列。
        top 以此处选择的列为准排序。

O
        与 F 功能完全相同。

VIII. 应用

1. 如何用 top 只监视某个进程的状态?

目前只发现用 top -p PID 的方式, 监控某个PID的进程。

所以,先用pstree -p 取得进程PID, 然后再监控。如:

# pstree -p | grep apache2
    # top -p 2038,13734,13735

2. 如何通过 shell 脚本监控 top 命令并抓取某几个进程的信息?
   
    在 shell 脚本中用如下一行即可.
   
    top -b -n 2 | grep -E "mysql| apache2" >> log

参数 -b 用于输出 top 的信息, -n 2 表示两次刷新. 可以加 -d 10 更改刷新间隔时间. 也可以去掉 -n 2, 表示一直不停取结果.
   

相关文章:

android 中改变按钮按下时的颜色

原文出处&#xff1a;http://blog.csdn.net/nmsoftklb/article/details/9087233 a、在开发中大家都会遇到这样情况&#xff0c;在一个xxx.xml文件中如果有两个以上的组件有一样的属性功能时&#xff0c;可以把它们共同的内容抽取出来 放在styles.xml文件来声明。 然后在相应的组…

实战:使用 Mask-RCNN 的停车位检测

作者&#xff1a;小白来源&#xff1a;小白学视觉Q如何使用Mask-RCNN检测停车位可用性?我最近做了一个项目&#xff0c;根据安全摄像头的照片来检测停车位是否可用或被占用。我的工作有局限性&#xff0c;我将进一步详细介绍这些局限性&#xff0c;但一旦这些问题得到解决&…

Microsoft Office Communications Server 2007 R2 RTM 简体中文企业版部署速成篇之二

写文章真是件累人的事情.\(^o^)/~.OCS2007R2中的CWA有很多新特性.今天我们来看看,接着昨天的开始.本篇基于速成篇之一.Go!在一中的环境中多了,一台WIN2008的服务器,并加入域.首先在DNS里面建两条别名,指向CWA服务器!完成后,记得重新启动DNS.然后,子啊功能和角色里面添加必要的组…

F5负载均衡会话保持技术及原理技术白皮书

1&#xff0e;什么是会话保持&#xff1f;在大多数电子商务的应用系统或者需要进行用户身份认证的在线系统中&#xff0c;一个客户与服务器经常经过好几次的交互过程才能完成一笔交易或者是一个请求的完成。由于这几次交互过程是密切相关的&#xff0c;服务器在进行这些交互过程…

一文全览机器学习建模流程(Python代码)

作者&#xff1a;泳鱼 来源&#xff1a;算法进阶引言随着人工智能时代的到来&#xff0c;机器学习已成为解决问题的关键工具&#xff0c;如识别交易是否欺诈、预测降雨量、新闻分类、产品营销推荐。我们接下来会详细介绍机器学习如何应用到实际问题&#xff0c;并概括机器学习应…

CSS Selector 3

转载于:https://www.cnblogs.com/dmdj/p/4213159.html

GSM中时隙、信道、突发序列、帧的解释

刚从论坛中看到有人问GSM中时隙、信道、突发序列、帧知识。今天我们数字通信正好上到这一块&#xff0c;我就根据我知道的和网上搜索的回答&#xff01; 1、时分多路复用技术 FDMA:频分多址 TDMA:时分多址 CDMA:码分多址 为了提高通信道的利用率&#xff0c;使若干彼此独立信号…

网页效率之DNS查找和并行下载

首先&#xff0c;一个页面所需要访问的域名数量为n&#xff0c;那么就需要n次DNS查找&#xff0c;而DNS查找通常是blocking call&#xff0c;就是说在得到结果之后才能继续&#xff0c;所以越多的DNS查找&#xff0c;反应速度就越慢&#xff1b; 雅虎的YSlow插件的规则之一&…

赛门铁克开启“容灾即服务”时代

从本地备份到异地复制再到云容灾&#xff0c;随着云计算技术的快速发展&#xff0c;以及云服务这种模式逐渐被广大企业用户所接受&#xff0c;将数据备份到云已经是一种可行的数据保护解决方案。12 月 16日&#xff0c;赛门铁克公司推出了一款全新的灾难恢复解决方案Symantec D…

再谈“去虚拟化”对深度学习系统的必要性

作者 | 袁进辉上周写了一篇《浅谈GPU虚拟化与分布式深度学习框架的异同》&#xff0c;想不到引起很多关注和讨论。和朋友们讨论之后&#xff0c;觉得这个话题值得再发散一下&#xff1a;首先&#xff0c;文章只讨论了GPU“一分多”这种“狭义”的虚拟化&#xff0c;还存在另外的…

Enable PowerShell script execution policy

Open Windows PowerShell with administrator Run “Set-ExecutionPolicy UnRestricted –Force” 本文转自学海无涯博客51CTO博客&#xff0c;原文链接http://blog.51cto.com/549687/1918870如需转载请自行联系原作者520feng2007

Linux下DNS轮询与Squid反向代理结合

一、安装反向代理服务器 1&#xff0e;下载反向代理服务器软件采用squid&#xff0c;下载地址&#xff1a; http://www.squid-cache.org/Versions/v2/2.2/squid-2.2.STABLE5-src.tar.gz 下载后存放在/usr/local/squid/src目录里&#xff0c;文件名是 squid-2.2.STABLE5 ... 一…

从iOS证书申请到签名文件生成

2019独角兽企业重金招聘Python工程师标准>>> 苹果的应用在发布时&#xff08;无论是Adhoc发布还是AppStore正式发布&#xff09;都需要一个签名文件。这个签名文件是由苹果后台生成的&#xff0c;它把用户生成的证书&#xff0c;注册设备&#xff0c;AppID等统统连在…

GitHub 热榜:来膜拜这个流弊的 AI 框架!

近年来&#xff0c;人工智能正在进入一个蓬勃发展的新时期&#xff0c;这主要得益于深度学习和CV领域近年来的发展和成就。在这其中&#xff0c;卷积神经网络的成功也带动了更多学术和商业应用的发展和进步。为了避免“内卷”&#xff0c;更多人选择学习进阶&#xff0c;但是仍…

ASP.net:添加.net(2.0C#)FCKeditor在线编辑器步骤

1.下载本版本的编辑器压缩包。源码下载地址 2.解压缩打开文件夹拥有如下文件&#xff1a;3.在VS中添加“选择项”加载在此文件夹的Bin下FredCK.FCKeditorV2.dll。4.在你的网站的web.config的 <appSettings>枝节中加入&#xff1a;<appSettings><add key"FC…

安装varish作为缓存和代理

1&#xff0c;Varish的使用有两种模式&#xff1a;第1种 Nginx(负载)varish(缓存)WEB第2种 Varish&#xff08;缓存和负载&#xff09;web2&#xff0c;varish是以内存作为共享容器的&#xff1a;内存的大小决定了它的缓存容量。相对于主要以硬盘为存储的squid来说要高效的多…

英伟达 400 亿美元收购 ARM 受阻,不妨考虑 VMware?

作者 | 马超 出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;目前半导体行业的发展可以用冰火两重天来形容&#xff0c;传统的桌面及移动SOC&#xff08;System on a Chip&#xff0c;系统级芯片&#xff09;市场已经基本停止增长&#xff0c;而云计算成了各…

单目和双目模式识别---游戏控制

http://v.youku.com/v_show/id_XMzQwMjUwNTY.html http://blog.csdn.net/anthonywanted/article/details/3024535转载于:https://www.cnblogs.com/pengkunfan/p/4220144.html

vsftpd企业应用快速部署文档

系统环境&#xff1a;centos 5.6 vsftpd&#xff1a;2.3.5 vsftpd是UNIX/Linux中非常安全且快速的FTP服务器&#xff0c;目前已经被许多大型站点所采用。vsftpd支持将用户名和口令保存在数据库文件或数据库服务器中。登录FTP有三种方式&#xff0c;匿名登录、本地用户登录和虚拟…

华为持续引领,开辟5G Massive MIMO绿色新赛道

今日&#xff0c;在华为举办的无线首届媒体沙龙暨MBBF2021预沟通会上&#xff0c;华为无线产品线首席营销官甘斌发表了“华为持续引领&#xff0c;开辟5G Massive MIMO绿色新赛道”的主题发言&#xff0c;分享了Massive MIMO的下一个突破性创新方向&#xff0c;引领绿色5G网络建…

MRTG—网络监控工具

最近一段时间在研究后台服务器测试技术&#xff0c;需要对后台服务器的各项性能指标进行实时监控和统计&#xff0c;也由此让我回想起之前公司曾经接触过的一个服务SNMP&#xff0c;SNMP是一种称之为简单网络管理协议的服务&#xff0c;主要是用于获取系统的流量、I/O、CPU、Me…

IBM会话设置和覆盖规则

为什么80%的码农都做不了架构师&#xff1f;>>> 中文版地址&#xff1a;http://www-01.ibm.com/support/docview.wss?uidswg21659740 Technote (troubleshooting) Problem(Abstract) It is possible to set the HTTP Session time-out in various places on th…

FOSCommentBundle功能包:设置Doctrine ODM映射

Step 2b: Setup MongoDB mapping The MongoDB implementation does not provide a concrete Comment class for your use,you must create one: MongoDB实现并不提供为您所用的具体评论类&#xff0c;您必须要创建一个。 1234567891011121314151617181920212223<?php// src…

lighttpd 负载均衡-反向代理+cache浅谈

Lighttpd有硬盘级别的cache-(mod_cache)和内存级别的cache(mod_mem_cache&#xff09;&#xff0c;内存级别的cache是国人的产品&#xff0c;我喜欢用lighttpd就是因为它具有2种选择的cache&#xff0c;像我的实际需求&#xff0c;由于系统存在很多图片&#xff0c;但是容量不大…

设置网页标题图标

网页图标如图上位置 设置语句如下&#xff1a; link rel:"SHORTCUT ICON", href:"/images/logo.ico"

DeepMind 的新强化学习系统,是迈向通用人工智能的一步吗?

作者&#xff1a;Ben Dickson来源&#xff1a;数据实战派前言尽管已经掌握围棋、星际争霸 2 和其他游戏&#xff0c;深度强化学习模型的主要挑战之一是&#xff0c;它们无法将其能力泛化到训练领域之外。这种限制使得将这些系统在现实世界中的应用变得非常困难&#xff0c;因为…

无法访问D盘,执行页内操作时的错误

打开D盘后出现“无法访问D:/,执行页内操作时的错误”怎么办&#xff1f;既便D盘有病毒也不会出现这种状况&#xff0c;初步判断是D: 分区表错误&#xff0c;用系统安装光盘开机进入纯DOS下的修复模式中用 CHKDSK /R 或 /F来修复一下试试看。在cmd下输入chkdsk空格d:空格/f本文转…

怎样修改Ubuntu的root帐户密码并使用root登录

Ubuntu版本11.04 Ubuntu是一套基于Debian的Linux系统&#xff0c;它追求的是“Just Work”&#xff0c;最新的7.10版本发布于2007年10月&#xff0c;不同于其他Linux发行版本&#xff0c;Ubuntu的所有版本都是免费的&#xff0c;包括企业版。第一次安装Ubuntu&#xff0c;发现比…

CSDN 开学见面礼!限时免费申请,手慢无!

暑假即将结束&#xff0c;金秋开学季来袭。别让年轻的自己虚度光阴&#xff0c;现在扫码申请学习资格&#xff0c;10&#xff0b;场考前辅导&#xff0c;600&#xff0b;分钟大咖讲解与答疑直播免费看&#xff01;大厂CTO级别导师陪你加buff&#xff01;3周带你掌握大厂工程师基…

【No.1_sizeof与strlen】

【注意】 程序语言只是我们与计算机交流并让计算机实现我们创造性思想的工具&#xff0c;可以并鼓励深入掌握一门语言&#xff0c;但千万别沉迷于钻某种语言的牛角尖&#xff0c;一定要把握好二者间的度 本帖属不定时连载贴&#xff0c;以试卷的形式提出一个比较基础的问题供大…