文档章节

top命令

A__17
 A__17
发布于 2017/09/26 21:36
字数 1266
阅读 4
收藏 0

概念:top命令是Linux下常用的系统性能分析工具,能实时查看系统中各个进程资源占用情况。

参数:

-p	指定进程号
	eg:top -p PID	查看进程ID为PID的进程
-H	查看各个线程资源占用的情况。
	eg:top			查看各个进程 资源占用的情况。
		top	-H 		查看各个线程 资源占用的情况。
		top -Hp	PID	查看进程ID为PID的进程中 所有线程 的资源占用情况。
		
-c	查看进程的完整命令(COMMAND)
	eg:top -c		查看各个进程 资源占用的情况,其中命令(COMMAND)项显示详细信息。
	
-n	更新n次后,退出top命令。
	eg:top -n 5	更新5次后,停止更新并退出top命令。

1)系统资源占用情况:

top - 15:17:57 up 366 days, 21:32,  1 user,  load average: 0.03, 0.17, 0.14
Tasks: 724 total,   1 running, 723 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.4%us,  0.1%sy,  0.0%ni, 99.5%id,  0.0%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:  132042876k total, 101359588k used, 30683288k free,   171176k buffers
Swap: 20971512k total,   407892k used, 20563620k free, 26919260k cached


top:当前时间、系统启动时间、当前系统登录用户数目、平均负载
Tasks:进程总数、运行进程数、睡眠进程数、终止进程数、僵死进程数。
Cpu(s):
	us	用户空间占用cpu百分比
	sy	内核空间占用cpu百分比
	ni	用户进程空间内改变过优先级的进程占用cpu百分比
	id	空闲cpu百分比
	wa	等待输入输出(I/O)的cpu百分比
	hi	cpu处理硬件中断的时间
	si	cpu处理软件中断的时间
	st	用于有虚拟cpu的情况,表示被虚拟机偷掉的cpu时间
	
	说明:
		us高的解决方法:CPU us 高的原因主要是执行的线程不需要任何挂起动作,且一直执行,导致CPU没有机会去调度执行其它的线程。
		sy高的解决方法:CPU sy 高的原因主要是线程的运行状态要经常切换,对于这种情况,常见的一种优化方法是减少线程数。
	
补充:
	1)查看每个CPU的性能数据:使用top的交互命令数字1
		注:如果机器的cpu个数较多时,按1会提示"Sorry, terminal is not big enough",这时,我们可以使用mpstat命令来查看每个cpu的情况。
	
	2)查看每个线程的性能信息:使用top的交互命令H	或	使用top -H
		常见情况:
		1>某个线程CPU利用率一直100%,则说明是这个线程有可能有死循环,将PID记录下来。
		2>某个线程一直在TOP 10的位置,这说明这个线程可能有性能问题。
		3>CPU利用率高的几个线程在不停变化,说明并不是由某一个线程导致CPU偏高。
	
Mem:
	total	总的物理内存
	used	使用物理内存大小
	free	空闲物理内存
	buffers	用内核缓存的内存大小
Swap:
	total	总的交换空间大小
	used	已经使用交换空间大小
	free	空间交换空间大小
	cached	缓冲的交换空间大小
	补充:buffers于cached区别:buffers指的是块设备的读写缓冲区,cached指的是文件系统本身的页面缓存。

2)每个进程的资源占用情况:

   PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
 43997 tomcat_a  20   0 50460  26m 1988 S 19.6  0.0 739:54.12 dataservice 
 20227 mysql     20   0 77.9g  54g 6248 S  3.3 43.5  99046:41 mysqld     
 52786 root      20   0 4318m 429m  736 S  1.7  0.3  13389:54 redis-server
 44077 tomcat_a  20   0 26440  19m 1908 S  0.3  0.0  23:02.34 dataservice      
 77400 root      20   0  194m 3012 1020 S  0.3  0.0 275:09.63 snmpd   
124158 tomcat_a  20   0 15560 1784  948 R  0.3  0.0   0:03.82 top
	 1 root      20   0 19356  540  316 S  0.0  0.0   0:02.66 init  
	 2 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kthreadd  


PID		进程号
USER	运行用户
PR		优先级,说明:PR其实就是进程调度器分配给进程的时间片长度,单位是时钟个数,linux下一个时钟约为10ms,PR值为20则表示这个进程的时间片为200ms
NI		任务nice值
VIRT	进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES		物理内存用量
SHR		共享内存用量
S		进程的状态。
			S	睡眠状态
			D	不可中断的睡眠状态
			R	运行状态
			Z	僵死状态
			T	停止或跟踪状态
%CPU	从上一次刷新到现在,该进程占用cpu时间和总时间的百分比
%MEM	占用的物理内存与总内存的百分比
TIME+	累计cpu占用时间
COMMAND	该进程的命令名称

3)每个线程的资源占用情况:

PID   USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
22855 tomcat_a  20   0 5650m  56m 2036 S  0.0  0.4   0:00.00 java
22856 tomcat_a  20   0 5650m  56m 2036 S  0.0  0.4   0:01.79 java
22857 tomcat_a  20   0 5650m  56m 2036 S  0.0  0.4   1:20.30 java

© 著作权归作者所有

共有 人打赏支持
A__17
粉丝 3
博文 101
码字总数 119998
作品 0
朝阳
私信 提问

暂无文章

nginx反向代理配置去除前缀

使用nginx做反向代理的时候,可以简单的直接把请求原封不动的转发给下一个服务。设置proxy_pass请求只会替换域名,如果要根据不同的url后缀来访问不同的服务,则需要通过如下方法: 方法一:...

架构师springboot
21分钟前
1
0
QianBill API 开发笔记

JWT

BeanHo
33分钟前
3
0
Elasticsearch实战篇——Spring Boot整合ElasticSearch

当前Spring Boot很是流行,包括我自己,也是在用Spring Boot集成其他框架进行项目开发,所以这一节,我们一起来探讨Spring Boot整合ElasticSearch的问题。 本文主要讲以下内容: 第一部分,通...

JAVA_冯文议
42分钟前
3
0
不错的linux下通用的java程序启动脚本

#!/bin/sh#该脚本为Linux下启动java程序的通用脚本。即可以作为开机自启动service脚本被调用,#也可以作为启动java程序的独立脚本来使用。##Author: tudaxia.com, Date: 2011/6/7...

sprouting
今天
3
0
Linux manjaro系统安装后无法连接wifi,解决方案

笔记本为联想 thinkpad E480 首先通过命令lspci -k看一下原因是否为缺少wifi驱动,如下,如果没有Kernel driver in use,说明缺少驱动。 05:00.0 Network controller: Realtek Semiconducto...

bluecoffee
今天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部