每天一个linux命令:top
1、命令简介
top (top) 令经常用来实时监控linux的系统状况,比如cpu、内存的使用,类似于Windows的任务管理器。
2、用法
- top -hv | -abcHimMsS -d delay -n iterations -p pid [, pid ...]
3、选项
- -b 以批量模式运行,但不能接受命令行输入;
- -c 显示命令行,而不仅仅是命令名;
- -d N 显示两次刷新时间的间隔,比如 -d 5,表示两次刷新间隔为5秒;
- -i 禁止显示空闲进程或僵尸进程;
- -n NUM 显示更新次数,然后退出。比如 -n 5,表示top更新5次数据就退出;
- -p PID 仅监视指定进程的ID;PID是一个数值;
- -q 不经任何延时就刷新;
- -s 安全模式运行,禁用一些交互互指令;
- -S 累积模式,输出每个进程的总的CPU时间,包括已死的子进程;
4、示例
示例1:top命令说明
第一行:任务队列信息,同 uptime 命令的执行结果,
- top - 15:04:53 up 10 min, 3 users, load average: 0.00, 0.00, 0.00
15:04:53 | 当前系统时间 |
up 10 min | 系统已经运行了10分钟 |
3 users | 当前有3个用户登录系统 |
load average: 0.00, 0.00, 0.00 | load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况 |
第二行,Tasks — 任务(进程)
- Tasks: 209 total, 1 running, 208 sleeping, 0 stopped, 0 zombie
209 total | 总共有209个进程 |
1 running | 处于运行中的进程有1个 |
208 sleeping | 休眠状态中的进程有208个 |
0 stopped | stopped状态中的进程有0个 |
0 zombie | 僵尸进程有0个 |
第三行,cpu状态信息
- Cpu(s): 0.0%us, 0.1%sy, 0.0%ni, 99.9%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
0.0%us | 用户占用CPU的百分比 |
0.1%sy | 内核占用CPU的百分比 |
0.0%ni | 改变过优先级的进程占用CPU的百分比 |
99.9%id | 空闲CPU百分比 |
0.0%wa | O等待占用CPU的百分比 |
0.0%hi | 硬中断(Hardware IRQ)占用CPU的百分比 |
0.0%si | 软中断(Software Interrupts)占用CPU的百分比 |
0.0%st | (Steal time) 虚拟 CPU 等待实际 CPU 的时间的百分比。 |
第四行,内存状态
- Mem: 3922280k total, 1045704k used, 2876576k free, 93988k buffers
3922280k total | 物理内存总量 |
1045704k used | 使用中的内存总量 |
2876576k free | 空闲内存总量 |
93988k buffers | 缓存的内存量 |
第五行,swap交换分区信息
- Swap: 8339448k total, 0k used, 8339448k free, 645000k cached
8339448k total | 交换区总量 |
0k used | 使用的交换区总量 |
8339448k free | 空闲交换区总量 |
645000k cached | 缓冲的交换区总量 |
对于内存监控,在top里我们要时刻监控第五行swap交换分区的used,如果这个数值在不断的变化,说明内核在不断进行内存和swap的数据交换,这是真正的内存不够用了。
第六行,空行。
第七行以下:各进程(任务)的状态监控
PID | 进程id |
USER | 进程所有者 |
PR | 进程优先级 |
NI | nice值。负值表示高优先级,正值表示低优先级 |
VIRT | 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES |
RES | 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA |
SHR | 共享内存大小,单位kb |
S | 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程 |
%CPU | 上次更新到现在的CPU时间占用百分比 |
%MEM | 进程使用的物理内存百分比 |
TIME+ | 进程使用的CPU时间总计,单位1/100秒 |
COMMAND | 进程名称(命令名/命令行) |
示例2:设置信息更新次数
- [root@oracledb ~]# top -n 5
示例3:设置信息更新间隔时间
- [root@oracledb ~]# top -d 5
示例4:显示 完整命令
- [root@oracledb ~]# top -c
示例5:显示指定的进程信息
- [root@oracledb ~]# top -p 54
示例6:以批处理模式显示程序信息
- [root@oracledb ~]# top -b
示例7:以累积模式显示程序信息
- [root@oracledb ~]# top -S
二、top交互命令
交互式命令键位
- space 立即更新;
- c 切换到命令名显示,或显示整个命令(包括参数);
- f,F 增加显示字段,或删除显示字段;
- h,? 显示有关安全模式及累积模式的帮助信息;
- k 提示输入要杀死的进程ID,目的是用来杀死该进程(默人信号为15)
- i 禁止空闲进程和僵尸进程;
- l 切换到显示负载平均值和正常运行的时间等信息;
- m 切换到内存信息,并以内存占用大小排序;
- n 提示显示的进程数,比如输入3,就在整屏上显示3个进程;
- o,O 改变显示字段的顺序;
- r 把renice 应用到一个进程,提示输入PID和renice的值;
- s 改变两次刷新时间间隔,以秒为单位;
- t 切换到显示进程和CPU状态的信息;
- A 按进程生命大小进行排序,最新进程显示在最前;
- M 按内存占用大小排序,由大到小;
- N 以进程ID大小排序,由大到小;
- P 按CPU占用情况排序,由大到小
- S 切换到累积时间模式;
- T 按时间/累积时间对任务排序;
- W 把当前的配置写到~/.toprc中;
多U多核CPU监控
在top基本视图中,按键盘数字“1”,可监控每个逻辑CPU的状况
观察上图,服务器有4个物理CPU。再按数字键1,就会返回到top基本视图界面。
高亮显示当前运行进程
敲击键盘“b”(打开/关闭加亮效果),top的视图变化如下:
进程字段排序
默认进入top时,各进程是按照CPU的占用量来排序的
敲击键盘“x”(打开/关闭排序列的加亮效果),top的视图变化如下,可以看到,top默认的排序列是“%CPU”
通过”shift + >”或”shift + <”可以向右或左改变排序列
按c显示完整命令
每天一个linux命令:top的更多相关文章
- (转)每天一个linux命令(44):top命令
背景:在面试时候面试官问到关于linux服务器下内存优化的问题.自己之前可能接触过也没有深入总结过. top命令 每天一个linux命令(44):top命令
- (4)top详解 (每周一个linux命令系列)
(4)top详解 (每周一个linux命令系列) linux命令 top详解 引言:今天的命令是用来看cpu信息的top top 我们先看man top top - display Linux pro ...
- 2018/03/11 每日一个Linux命令 之 top
每日一个Linux命令 之 top 今天在公司测试服务器上跑了一个我写的功能[本地测试过的],但是不知道怎么跑了个无限死循环出来,一个文件的体积在不停的变大,如果不管的话这能行? 上去一看,PHP ...
- 每天一个linux命令之top
每天一个linux命令之top 转 https://www.linuxprobe.com/chapter-02.html 在图2-6中,top命令执行结果的前5行为系统整体的统计信息,其所代表的含义 ...
- 每天一个linux命令目录
出处:http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每天一个命令,所以这个系列为每 ...
- 每天一个linux命令-转载
每天一个linux命令目录 转载自: http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令 ...
- [转]每天一个linux命令目录
[转]每天一个linux命令目录 http://www.cnblogs.com/peida/archive/2012/12/05/2803591.html 开始详细系统的学习linux常用命令,坚持每 ...
- 每天一个Linux命令 (转)
一. 文件目录操作命令: 1.每天一个linux命令(1):ls命令 2.每天一个linux命令(2):cd命令 3.每天一个linux命令(3):pwd命令 4.每天一个linux命令(4):mk ...
- (5)ps详解 (每周一个linux命令系列)
(5)ps详解 (每周一个linux命令系列) linux命令 ps详解 引言:今天的命令是用来看进程状态的ps命令 ps 我们先看man ps ps - report a snapshot of t ...
随机推荐
- day 39 mycql 数据库之约束
egon笔记: PRIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字段的值自动增 ...
- [ 高危 ] hash碰撞DOS漏洞
这是一个很神奇的漏洞 hotel.meituan.com订单页面,POST提交的是一串json数据.当把这串数据换成json碰撞数据 后,服务器原本 100毫秒可以响应的数据包,变成需要30秒才能响应 ...
- react+typescript报错集锦<持续更新>
typescript报错集锦 错误:Import sources within a group must be alphabetized.tslint(ordered-imports) 原因:impo ...
- 学生成绩管理系统C++
今天晚上终于做完了学生成绩管理系统!激动!开心!!!哈哈哈~~~~ 总共298行代码,第一次写这么多. 其中遇到了好多困难,也烦恼了好久,不过最终都解决了! 做了之后果然,满满的成就感!抑制不住的兴奋 ...
- Windows 账户名及机器名相关问题记录
问题 1 背景:因为部门调动,需要接手同事的 PC.相关工具配置好之后,通过"控制面板->用户帐户和家庭安全->用户帐户->管理帐户->更改帐户->重命名帐户& ...
- Yolov3实战 基于darknet window版
特此声明:训练过程预先认为你对yolov3神经网络有一定了解的基础上进行. 目录 一.先备齐下面的工具(预先善其事,必先利其器) 二.接下里使用我们的工具编译我们的环境 三. 训练自己的数据集 1. ...
- c++ stod很慢
C++ Convert String to Double Speed (There is also a string-to-int performance test.) A performance b ...
- Stanford CoreNLP使用需要注意的一点
1.Stanford CoreNLP maven依赖,jdk依赖1.8 <dependency> <groupId>edu.stanford.nlp</groupId&g ...
- Nodejs连接mysql的增、删、改、查操作
一,创建数据库 Source Database : my_news_test SET FOREIGN_KEY_CHECKS=0; -- ---------------------------- -- ...
- 潭州课堂25班:Ph201805201 django 项目 第十一课 手机号是否存在,短信验证分析 (课堂笔记)
判断手机号是否注册功能实现 1.分析 请求方法:GET url定义:/mobiles/(?P<mobile>1[3-9]\d{9})/ 请求参数:url路径参数 参数 类型 前端是否必须传 ...