Linux下top命令监控性能状态
1、性能分析因素:CPU、内存、网络、磁盘读写
2、系统对应的应用类型主要分为以下两种:
IO Bound:一般都是高负荷的内存使用以及存储系统,IO范畴的应用就是一个大数据处理的过程;通常数据库软件被认为是IO范畴的应用类型
CPU Bound:一个批处理CPU请求以及数学计算的过程,通常web server,mail server,以及其他类型服务被认为是CPU范畴的应用类型
系统的分析思路主要有两种:自顶而下,由应用程序往下分析;由底往上,从操作系统资源分析到应用程序。
3、查看CPU统计分析命令:vmstat、ps、top等
查看内存统计分析命令:vmstat、free、top等
查看网络统计分析命令:netstat -s、ip -s link等
查看IO统计分析命令:iostat、dmesg(查看io错误)
查看负载统计分析命令:w、top、uptime
4、简介top命令:
首行命令与w、uptime意义相同,分别为系统当前时间,系统运行时间、多少个用户,过去一分钟、五分钟、十五分钟的负载情况。 
第二行为进程信息,D:不可中断睡眠态(通常出现在IO阻塞)、R:运行态、S:睡眠态、T:已停止、z:僵尸态
第三行 us:用户空间占用CPU百分比、sy:内核空间占用CPU百分比、ni:用户进程空间内改变过优先级的进程占用CPU百分比、id:空闲CPU百分比、wa:等待输入输出的CPU时间百分比、hi:硬中断占用CPU百分比、si:软中断占用CPU百分比、st:虚拟CPU等待实际CPU的时间的百分比。
硬中断:由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。
软中断:为了满足实时系统的要求,中断处理应该是越快越好。linux为了实现这个特点,当中断发生的时候,硬中断处理那些短时间就可以完成的工作,而将那些处理事件比较长的工作,放到中断之后来完成,也就是软中断(softirq)来完成。
硬中断和软中断的区别
(1)软中断是执行中断指令产生的,而硬中断是由外设引发的。
(2)硬中断的中断号是由中断控制器提供的,软中断的中断号由指令直接指出,无需使用中断控制器。
(3)硬中断是可屏蔽的,软中断不可屏蔽。
(4)硬中断处理程序要确保它能快速地完成任务,这样程序执行时才不会等待较长时间,称为上半部。
(5)软中断处理硬中断未完成的工作,是一种推后执行的机制,属于下半部。
分析:top命令下按下1可以查看各CPU的使用情况,当wa使用率过高,我们应该考虑IO的性能瓶颈;当hi使用率过高,表示当前硬件中断占用很大百分比,可以/proc/interrupts、/proc/irq/pid/smp_affinity、服务irqbalance是否配置;si是通过软件的方法模拟硬件的中断模式,常见的软件中断一般和网络有关,从网卡到IP层的数据报文收发斗是si处理的,长时间写日志也可能产生软件中断,我们可以通过ps aux|grep ksoftirqd查看ksoftirqd的瓶颈。

第四行Mem usd:使用内存总量、Mem free:空闲内存总量、Mem buffers:用作内核缓存量、Mem cached:缓冲交换区总量;cache和buffer的作用是缩短IO调用的时间,其中cache的命中率很关键,如果频繁访问的文件不能命中,对cache而言是一个比较大的浪费,此时应该考虑drop cache[#sync(避免丢失数据),#echo 3 > /proc/sys/vm/drop_caches]并且提升cache的命中率
第五行Swap total:交换区总量、Swap used:使用交换区总量、Swap free:空闲交换区总量,avail Mem:剩余内存使用量 
第六行pid:进程号、user:进程所有者用户名、pr:优先级、ni:nice值(负值表示高优先级)、virt:进程使用的虚拟内存总量=swap+res、res:进程使用的、未被换出的物理内存大小、shr:共享内存大小、%Cpu:cpu百分比、%Mem:内存使用百分比、time+:进程使用cpu时间、command:命令行
5、top使用小技巧
(1)按d进入间隔刷新配置,输入间隔秒数
(2)按f进入列配置界面,按d进行添加
(3)按1查看各cpu使用情况
Linux下top命令监控性能状态的更多相关文章
- Linux下top命令详解
Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...
- linux下top命令详细介绍
linux下top命令详细介绍 top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu.内存的使用)占用状况,top命令的执行结果是一个动态显 ...
- Linux下通过server-status监控性能
Linux下通过server-status监控性能 前提:安装好Apache,在opt/路径下 查看Apache的工作模式 可以知道是 prefork.c模式 配置server-status 性能 进 ...
- linux下top命令参数详解
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: Mem: 191272k to ...
- linux下top命令参数解释
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. top - 01:06:48 up 1:22, 1 ...
- linux下top命令的使用
top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 视图参数含义 top视图分为两部分:操作系统资源概况信息和进程信息.首先分析资源 ...
- 图解linux下top命令的使用
top命令经常用来监控linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解. 本文通过一个运行中的 ...
- linux系统top命令查看系统状态
Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...
- linux下top命令查看cpu占用情况
可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等.退出 top 的命令 ...
随机推荐
- Ubuntu 安装ftp
Ubuntu 用vsftpd 配置FTP服务器 网上的文章好难懂啊..只想要简单粗暴,弄好能用就行啊,复杂的以后研究不行吗...折腾好久,其实弄出来能用不就这么点内容吗... 本文在Ubuntu Se ...
- Struts2方法调用的三种方式(有新的!调用方法的说明)
在Struts2中方法调用概括起来主要有三种形式 第一种方式:指定method属性 <action name="heroAction" class="com.ABC ...
- FS及CacheFS类解读
Javac中有FSInfo与CacheFSInfo两个类,CacheFSInfo继承了FSInfo类,这两个类的主要功能就是通过map缓存Jar文件,核心代码如下: private Map<Fi ...
- Hibernate 查询语句基本用法
转发: http://459104018-qq-com.iteye.com/blog/720538
- 我爱Markdown (1)
作为一个程序员,用Word, Excel等写技术文档实在是不那么方便.而我,作为一个Unix/Linux程序员,写技术文档还是喜欢用Wiki等在线写作工具.虽然Wiki已经很酷了,但跟Markdown ...
- 安卓加固之so文件加固
一.前言 最近在学习安卓加固方面的知识,看到了jiangwei212的博客,其中有对so文件加固的两篇文章通过节加密函数和通过hash段找到函数地址直接加密函数,感觉写的特别好,然后自己动手实践探索s ...
- Scrum 冲刺博客第六篇
一.当天站立式会议照片一张 二.每个人的工作 (有work item 的ID),并将其记录在码云项目管理中 昨天已完成的工作 判断用户输入的答案是否正确并将其输出到界面中 今天计划完成的工作 对排行榜 ...
- C# 之多线程(二)
一.确定多线程的结束时间,thread的IsAlive属性 在多个线程运行的背景下,了解线程什么时候结束,什么时候停止是很有必要的. 案例:老和尚念经计时,2本经书,2个和尚念,一人一本,不能撕破,最 ...
- C# 学习笔记(一) Winform利用Assembly反射动态创建窗体
1. 添加Reflection //添加对Reflection程序集引用 using System.Reflection; // 引用窗体创建方法CreateForm,传入参数 private voi ...
- [javaSE] 多线程(join方法)
多条线程并发执行,随机切换,调用join()方法,会使当前线程所在的线程(一般主线程)冻结,直到当前线程结束,所在的线程才恢复继续执行 class JoinTestDemo implements Ru ...