top命令总结
top命令主要用来观察和收集运行在系统上的进程的一些有用信息。ps只是一个快照,是ps命令执行的那一瞬间的系统中进程的快照。top则可以用于持续观察。
第一步,在命令行键入top,回车进入top管理界面。
第一行其实和uptime的执行效果是一样的。
分析一下,12:48:06是当前运行这个命令的时候,机器的时间。 up 134 days, 19:36,指的是说这台机器,持续运行了134天了,启动于134天前的19:36。 5 users代表的是当前运行这个命令的时候,这台机器上总共登陆有5个用户(这个可以执行who命令查看当前具体是哪些用户登陆这个系统)。最后的load average代表的是运行最近的1分钟,5分钟,15分钟的系统平均负载,平均负载是啥意思呢?平均负载就是指运行进程队列中的平均数量。假如你的cpu是1核的,那么0.1-1.0之间代表正常,超过1.0代表有进程在1秒内不能被处理,就是比如1核cpu一秒钟可以运行完成100个进程,而现在在运行队列中的进程数量是100,那么就说明系统负载是1.0 。如果1秒钟内有120个进程在等待,那么就是1.2,这时候,系统是来不及处理的,cpu处于100%运转状态也运行不完这么多进程。这个时候就说明系统的负担太重了。如果双核cpu的话,有两个可运行内核,这时候,0.0-2.0是正常的,4核的cpu,0.0-4.0是正常的。一般参考5分钟和15分钟,如果这两个中有一个数值太高了,就需要去分析一下了,及时关闭一些进程。那么还有一个问题,怎么知道我的电脑是几个核的?这时候就可以使用这个命令:grep 'model name' /proc/cpuinfo | wc -l
下图是查看一下当前是具体哪5个用户在使用这台机器:
下图是我的机器配置,运行 grep 'model name' /proc/cpuinfo | wc -l 可以看到,我的计算机现在是2核的。
接下来分析top命令输出的第二行:
第二行显示的是进程的概要信息,top命令中的tasks就是进程的意思。Tasks: 133 total代表的是当前有133个进程,2 running代表的是当前正在运行的进程的个数是2个,130sleeping代表130个进程处于休眠状态。休眠状态是啥?休眠(被阻塞)的进程处于一个特殊的不可执行状态。进程休眠由多种原因,但肯定都是为了等待一些事件。事件可能是一段时间从文件I/O读取更多数据,或者是某个硬件事件。一个进程还由可能在尝试获取一个已被占用的内核信号量时被迫进入休眠。休眠的一个常见原因就是文件I/O —— 如进程对一个文件执行了read()操作,而这需要从磁盘里读取。还有,进程在获取键盘输入的时候也需要等待。无论哪种情况,内核的操作都相同:进程把自己标记成休眠状态,从可执行红黑树中移出,放入等待队列,然后调用schedule()选择和执行一个其他进程。唤醒的过程刚好相反:进程被设置为可执行状态,然后再从等待队列中移到可执行红黑树中。stopped代表的意思是进程处于停止状态,stopped代表这个进程执行完成了,退出了,不会再被调度了。zombie进程代表僵尸进程。僵尸进程,一个进程在调用exit命令结束自己的生命的时候,其实它并没有真正的被销毁,而是留下一个称为僵尸进程(Zombie)的数据结构(系统调用exit,它 的作用是使进程退出,但也仅仅限于将一个正常的进程变成一个僵尸进程,并不能将其完全销毁)。在Linux进程的状态中,僵尸进程是非常特殊的一种,它已 经放弃了几乎所有内存空间,没有任何可执行代码,也不能被调度,仅仅在进程列表中保留一个位置,记载该进程的退出状态等信息供其他进程收集,除此之外,僵 尸进程不再占有任何内存空间。它需要它的父进程来为它收尸,如果他的父进程没安装SIGCHLD信号处理函数调用wait或waitpid()等待子进程 结束,又没有显式忽略该信号,那么它就一直保持僵尸状态,如果这时父进程结束了,那么init进程自动 会接手这个子进程,为它收尸,它还是能被清除的。但是如果如果父进程是一个循环,不会结束,那么子进程就会一直保持僵尸状态,这就是为什么系统中有时会有很多的僵尸进程。
接下来分析top命令输出的第三行:
第三行是从各种角度分析cpu当前的运行状态。1.2%us代表的是用户进程当前占用了1.2%的cpu时间。1.0%sy代表的是系统进程当前占用了1.0%的cpu时间。ni
代表用户进程空间内改变过优先级的进程占用CPU百分比。id代表空闲cpu百分比。wa代表等待输入输出的cpu时间百分比。
紧跟着的两行说明了系统内存的状态,第一行说的是系统的物理内存:总共有多少内存,当前用了多少,还有多少空闲,后一行说明的是系统交换空间总共有多少内存,当前用了多少,还有多少空闲。
最后一部分现实了当前运行的进程的详细列表:
PID:进程的ID
USER:进程属主的名字
PR:进程的优先级
NI:进程的nice值(介于-20 到 +19之间,值越大,越谦让)
VIRT:进程占用的虚拟内存总量
RES:进程占用的物理内存总量
SHR:进程和其他进程共享的内存总量
S:进程的状态(D代表可终端的休眠状态,R代表在运行的状态,S代表休眠状态,T代表跟踪状态或停止状态,Z代表僵化状态)
%CPU:进程使用的CPU时间比例
%MEM:进程实用的内存占可用内存的比例
TIME+:自进程启动到目前为止的CPU时间总量
COMMAND:进程所对应的命令行名称,也就是启动的程序名。
快捷键:
top界面按d键,可以更改刷新时间。默认3秒。
top界面按M键,可以按照内存来进行排序。
top界面按P键,可以按照cpu使用率来排序。
top界面按i键,可以只显示状态为R的进程。
top界面按c键,可以显示进程的完整的名称。
top -s以安全模式启动top界面,可以防止在top界面对进程进行修改操作。
按shift + >键,可以依次按照PID、USER、PR·····来进行排序。
按shift + <键,可以依次按照COMMAND、TIME+、%MEM·····来进行排序。
top界面按o键,还可以自定义显示哪些列。
top命令总结的更多相关文章
- linux的top命令参数详解
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...
- linux-linux top 命令各参数详解
简介 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器. top显示系统当前的进程和其他状况,是一个动态显示过程,即可以通过用户按 ...
- linux系统top命令查看系统状态
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...
- Top 命令详解
Top 命令详解 先感受一下top命令的执行结果吧!哈哈-- top - 17:32:34 up 3 days, 8:04, 5 users, load average: 0.09, 0.12, 0. ...
- linux top命令查看内存及多核CPU的使用讲述
查看多核CPU命令 mpstat -P ALL 和 sar -P ALL 说明:sar -P ALL > aaa.txt 重定向输出内容到文件 aaa.txt top命令 经常用来监控l ...
- TOP命令各个参数代表意义详解
Top命令是Linux下常用的系统性能分析工具,能实时查看系统中各个进程资源占用情况. top - 16:24:25 up 284 days, 4:59, 1 user, load average: ...
- top命令
TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户终止该程序为止.比较准确的说,top命令提供了实时的对系统处理器的状态监视.它将显示系统中C ...
- Android中top命令字段含义
PID PR CPU% S #THR VSS RSS PCY UID Name 1 ...
- Top命令 -转
Windows下的任务管理器虽然不好用(个人更喜欢Process Explorer些),但也算方便,可以方便的查看进程,CPU,内存...也可以很容易的结束进程 没有图形化界面下的Linux,也有命令 ...
- 【转】Linux Top 命令解析 比较详细
TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况. TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占前台,直到用户 ...
随机推荐
- 通过批处理 安装 mongodb和设置身份验证
1.首先需要 mongodb.msi安装包 2.mongodb的配置文件mongod.cfg 内容如下: systemLog: destination: file path: "D:/mon ...
- mysql5.7.16二进制安装
1.下载二进制文件 cd /data wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-x ...
- python基本语法-加密解密等
1. 编写函数,要求输入x与y,返回x和y的平方差 2. 计算1到100的平方的和 3. 编写函数,若输入为小于100的数,返回TRUE,大于100的数,返回FALSE 4. 某个公司采用公用电话传递 ...
- SpringMVC构建Restful。
因为spring是依赖jackson来生成json,需要添加jar包. pom.xml文件添加依赖. <dependency> <groupId>org.codehaus.ja ...
- 关于Cookie的知识的总结
Cookie的类型 会话cookie和持久cookie 会话cookie是一种临时cookie,它记录了用户访问站点时的设置和偏好,当用户退出浏览器时,会话cookie就会被删除. 持久cookie的 ...
- 抱歉,您必须拥有一个终端来执行 sudo
Linux ssh执行远端服务器sudo命令时有如下报错: sudo: sorry, you must have a tty to run sudo sudo:抱歉,您必须拥有一个终端来执行 sudo ...
- php原生curl接口的请求
/** * @desc 接口请求处理 * @date 2017/5/19 11:39 * @param [$url请求的接口地址,$way为false为get请求,true为post请求] * @au ...
- RabbitMQ安装记录(CentOS)
参照官方文档:http://www.rabbitmq.com/install-rpm.html Install Erlang from EPEL 激活EPEL源: rpm -ivh http://dl ...
- webpack 2.x 配置
以下展示2.x 配置文件信息 v1 迁移至 v2 官方有更详细的说明 具体详见 https://webpack.js.org/guides/migrating/ 只列举常用到参数进行描述, 或者我在使 ...
- Android依赖管理与私服搭建
在Android开发中,一个项目需要依赖许多的库,我们自己写的,第三方的等等,这篇文件介绍的就是自己搭建私服,创建自己的仓库,进行对我们自己写的库依赖管理.本文是在 mac book pro 环境上搭 ...