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命令监控性能状态的更多相关文章

  1. Linux下top命令详解

    Linux下top命令详解 top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.top是一个动态显示过程,即可以通过用户按键来不断刷 ...

  2. linux下top命令详细介绍

    linux下top命令详细介绍 top 命令是 Linux 下常用的系统资源占用查看及性能分析工具,能够实时显示系统中各个进程的资源(比如cpu.内存的使用)占用状况,top命令的执行结果是一个动态显 ...

  3. Linux下通过server-status监控性能

    Linux下通过server-status监控性能 前提:安装好Apache,在opt/路径下 查看Apache的工作模式 可以知道是 prefork.c模式 配置server-status 性能 进 ...

  4. linux下top命令参数详解

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. 内存信息.内容如下: Mem: 191272k to ...

  5. linux下top命令参数解释

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器.下面详细介绍它的使用方法. top - 01:06:48 up 1:22, 1 ...

  6. linux下top命令的使用

    top命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,类似于Windows的任务管理器 视图参数含义 top视图分为两部分:操作系统资源概况信息和进程信息.首先分析资源 ...

  7. 图解linux下top命令的使用

    top命令经常用来监控linux的系统状况,比如cpu.内存的使用,程序员基本都知道这个命令,但比较奇怪的是能用好它的人却很少,例如top监控视图中内存数值的含义就有不少的曲解. 本文通过一个运行中的 ...

  8. linux系统top命令查看系统状态

    Linux系统可以通过top命令查看系统的CPU.内存.运行时间.交换分区.执行的线程等信息.通过top命令可以有效的发现系统的缺陷出在哪里.是内存不够.CPU处理能力不够.IO读写过高. 使用SSH ...

  9. linux下top命令查看cpu占用情况

    可以通过 top 命令来查看 CPU 使用状况.运行 top 命令后,CPU 使用状态会以全屏的方式显示,并且会处在对话的模式 -- 用基于 top 的命令,可以控制显示方式等等.退出 top 的命令 ...

随机推荐

  1. SQL1042C running a fenced routine (stored procedure/UDF)

    Relation to this link http://www-01.ibm.com/support/docview.wss?uid=swg21399105 2015-01-11-13.38.19. ...

  2. Vagrant 创建虚拟机

    Vagrant  创建虚拟机 1. 下载相关软件 虚拟机软件:vmware  virtualbox Vagrant 软件:vagrant cd /tmpwget http://download.vir ...

  3. wampserver实现外网访问

    1.打开运行WampServer3.0.4,鼠标移到wampserver上去,单击右键,出来个wamp Settings, 按照如图所示,选择Menu item : Online / Offline. ...

  4. VMware里Ubuntu-14.04-desktop的VMware Tools安装图文详解

    不多说,直接上干货!    前期步骤,请见如下 VMware里Ubuntukylin-14.04-desktop的VMware Tools安装图文详解 我这里,直接,是来说明,Ubuntu-14.04 ...

  5. 剑指offer(21-25)编程题

    栈的压入.弹出序列 从上往下打印二叉树 二叉搜索树的后序遍历序列 二叉树中和为某一值的路径 复杂链表的复制 21.输入两个整数序列,第一个序列表示栈的压入顺序,请判断第二个序列是否为该栈的弹出顺序.假 ...

  6. tomcat原理解析(二):整体架构

    一 整体结构 前面tomcat实现原理(一)里面描述了整个tomcat接受一个http请求的简单处理,这里面我们讲下整个tomcat的架构,以便对整体结构有宏观的了解.tomat里面由很多个容器结合在 ...

  7. C# 之多线程(一)

    概述: 1.进程:是操作系统结构的基础:是一个正在执行的程序:计算机中正在运行的程序实例:可以分配给处理器并由处理器执行的一个实体:由单一顺序的执行显示,一个当前状态和一组相关的系统资源所描述的活动单 ...

  8. 十三、curator recipes之SharedCounter

    简介 我们可以通过curator实现对一个分布式环境下共享变量的访问,zookeeper将共享变量维护在同一个路径下. 官方文档:http://curator.apache.org/curator-r ...

  9. Groovy中each、find跳出循环

    在groovy中使用break跳出each或者find的循环会会报错,为什么呢?groovy中each.find方法是一个闭包操作,要想跳出循环要使用 return true,但有几个问题有待研究: ...

  10. hdu 1159(DP+字符串最长公共序列)

    http://blog.csdn.net/a_eagle/article/details/7213236 公共序列可以用一个二维数组dp[i][j]保存每个点时的最大数字,本质就是一个双向比较. dp ...