系统在工作负载中的性能受到许多因素影响,处理器速度、内存容量、网络或磁盘I/O控制器的数量以及磁盘的容量和速度是所以工作负荷的重要性能特征组件。还有其他应用程序自身的性能特征、工作负荷的特性、应用程序间的通信行为、磁盘或网络上的数据访问模式,还有终端用户对应用程序的使用模型。对特定工作负荷调优时,常常首先要假定许多物理环境特征,例如处理器数量、处理器类型、磁盘数量等保持不变。性能分析的主要目标是识别出工作负荷中哪些组件是当前提高性能和整体吞吐率的瓶颈,以及当工作负荷已经导致硬件能力饱和时,哪些硬件配置的改进会提高该工作负荷的吞吐率和性能。主要从以下几块进行分析:

一、CPU
  CPU是操作系统中运行的根本,他的执行速度与性能好坏很大程度上决定了系统整体的性能快慢,现在的cpu已经由之前的单核发展到多核,使得处理能力更强。当cpu处于满负载状态时,我们要结合系统附带的一些监控分析工具,检查系统日志等辅助分析cpu的使用情况。

Linux下查看cpu性能命令:
  查看物理cpu个数:cat /proc/cpuinfo |grep "physical id"|sort|uniq|wc -l
  查看每个物理cpu的核数量:cat /proc/cpuinfo |grep "cpu cores"|wc -l
  查看cpu和cpu核数量的使用数量:cat /proc/cpuinfo |grep "processor"|wc -l
  实时监控CPU的使用情况:top
  其他命令:vmstat、sar、dstat、mpstat、ps

定位分析:
  当系统利用率大于50%时,需要关注;大于70%需要密切关注;大于90%时,情况比较严重

二、内存
  内存太小会阻塞进程,甚至会导致应用程序被杀死,更严重的引起系统重启。内存太大,容易浪费。同时也要兼顾虚拟内存的大小,当系统的物理内存不够用的时候,就需要物理内存释放一部分以供程序正常使用。这些被释放的空间被临时保持到虚拟内存空间中,等需要时再次从虚拟内存中恢复保存的数据到物理内存。系统总是在内存不够用的时候才切换内存。

Linux下内存查看命令:free –m
  其他命令:vmstat、sar、dstat、top、ps

定位分析:
  当系统利用率大于50%时,需要关注;大于70%需要密切关注;大于90%时,情况比较严重

三、网络
  系统之间的通信是通过网络进行传输的,因此时间、网络延迟、阻塞等都可以影响系统性能。
  在系统中,要考虑对应的网络是否到达、防火墙是否开启、端口的访问、宽带是否被限制、路由的寻址、网络的时延等

定位分析:
  通过命令sar、ifconfig、netstat以及查看net的dev速率,通过查看发现收发包的吞吐速率达到网卡的最大上限,网络数据报文有因为这类原因2⃣而引发的丢包、阻塞等现象。测试过程中为了减少网络问题的影响,选择在局域网中进行。

四、I/O
  磁盘数据的读写的性能也会直接影响系统程序的性能,磁盘I/O系统是系统中最慢的部分。主要是CPU处理比磁盘物理操作块好几个数量级。针对I/O的场景模型,要考虑的有TPS、平均I/O数据、平均队列长度、平均服务时间、平均等待时间、IO利用率等指标。

定位分析:
  衡量系统IO的使用情况,可以用sar、iostat、iotop等命令进行系统的IO监控分析。当系统利用率大于40%时,需要关注;大于60%需要密切关注;大于80%时,情况比较严重

四、其他分析方向
  硬件
  数据库
  中间件
  程序部分(前端、后端、业务逻辑等)
  系统架构
  系统受到病毒感染

JMeter—系统性能分析思路的更多相关文章

  1. JMeter—系统性能分析思路(十三)

    参考<全栈性能测试修炼宝典JMeter实战>第九章 性能监控诊断 第二节 系统性能分析思路和第三节 定位分析 系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘I/O ...

  2. (转)Linux 系统性能分析工具图解读(一、二)

    Linux 系统性能分析工具图解读(一.二) 原文:http://oilbeater.com/linux/2014/09/08/linux-performance-tools.html 最近看了 Br ...

  3. Linux系统性能分析

    http://c.biancheng.net/cpp/html/2782.htmlLinux系统性能分析 这篇教程的目的是向大家介绍一些免费的系统性能分析工具(命令),使用这些工具可以监控系统资源使用 ...

  4. 通信原理实践(四)——模拟通信系统性能分析

    一.模拟通信系统性能分析 1.系统框图 2.信噪比定义 (1)输入信噪比: (2)输出信噪比: (3)调制制度增益: 3.模拟通信系统分析等价模型 即自己产生一个高斯白噪声,加入到调制信号,然后在送入 ...

  5. 操作系统性能分析与优化V1.0

    操作系统性能分析与优化V1.0 : http://www.docin.com/p-759561760.html

  6. Linux 系统性能分析工具 sar

    sar(System Activity Reporter系统活动情况报告)是目前 Linux 上最为全面的系统性能分析工具之一,可以 从多方面对系统的活动进行报告,包括:文件的读写情况.系统调用的使用 ...

  7. nmon与nmonanalyser系统性能分析

    nmon与nmonanalyser系统性能分析(图表) - [系统架构] 2011-05-15 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.c ...

  8. sar 找出系统瓶颈的利器 目前Linux上最为全面的系统性能分析工具之一 直接 sar -dur 1 30 即可看内存 CPU和IO占用

    12. sar 找出系统瓶颈的利器 sar是System Activity Reporter(系统活动情况报告)的缩写.sar工具将对系统当前的状态进行取样,然后通过计算数据和比例来表达系统的当前运行 ...

  9. java系统性能分析

    netstat -ano | findstr 31900 注意最后是pid 堆栈的作用: 线程死锁分析 辅助CPU过高分析 线程资源不足分析 性能瓶颈分析 关键线程异常退出 Windows:在运行ja ...

随机推荐

  1. Struts2源代码查看

    -----------------siwuxie095 Struts2 源代码查看 1.Struts2 的核心过滤器 StrutsPrepareAndExecuteFilter 实现了 Filter ...

  2. 303. Range Sum Query 范围求和系列

    Immutable [抄题]: Given an integer array nums, find the sum of the elements between indices i and j (i ...

  3. CloudStack + KVM + HA

    KVM高可用性CS4.2暂时没有实现 The Linux Kernel Virtual Machine (KVM) is a very popular hypervisor choice amongs ...

  4. tftp-hpa客户端使用说明

    1.板子 sudo apt-get install tftp-hpa 2.主机chmod 777 tftp—dir 3.tftp -4 192.168.1.122 -c put lib2.tar.gz ...

  5. asp.net 母版页使用详解

    母版页是VS2005中新引入的一个概念,它很好地实现界面设计的模块化,并且实现实现了代码的重用.它就像婚纱影楼中的婚纱模板,同一个婚纱模板可以给不同的新人用,只要把他们的照片贴在已有的婚纱模板就可以形 ...

  6. spring aop博客记录

    1.spring aop和事务失效 解决办法: http://blog.csdn.net/z2007130205/article/details/41284381 http://blog.csdn.n ...

  7. Go 网络编程笔记

    前言: 本文是学习<<go语言程序设计>> -- 清华大学出版社(王鹏 编著) 的2014年1月第一版 做的一些笔记 , 如有侵权, 请告知笔者, 将在24小时内删除, 转载请 ...

  8. Html::a 生成 method=post

    <?= Html::a(Yii::t('app', 'delete'), ['delete', 'id' => $model->id], [ 'class' => 'btn b ...

  9. 15 输入三个整数x,y,z,请把这三个数由小到大输出。

    题目:输入三个整数x,y,z,请把这三个数由小到大输出. public class _015ThreeNumberSort { public static void main(String[] arg ...

  10. 编写高质量代码改善C#程序的157个建议——建议111:避免双向耦合

    建议111:避免双向耦合 双向耦合是指两个类型之间相互引用.下面的代码是一种典型的双向耦合: class A { private B b; public void MethodA() { b.Meth ...