系统在工作负载中的性能受到许多因素影响,处理器速度、内存容量、网络或磁盘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. Professional C# 6 and .NET Core 1.0 - Chapter 43 WebHooks and SignalR

    本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 43 WebHooks ...

  2. 104. Maximum Depth of Binary Tree (Tree; DFS)

    Given a binary tree, find its maximum depth. The maximum depth is the number of nodes along the long ...

  3. 108.Convert Sorted Array to Binary Search Tree(Array; Divide-and-Conquer, dfs)

    Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 思路 ...

  4. 基于Mybatis分页插件PageHelper

    基于Mybatis分页插件PageHelper 1.分页插件使用 1.POM依赖 PageHelper的依赖如下.需要新的版本可以去maven上自行选择 <!-- PageHelper 插件分页 ...

  5. 257. Binary Tree Paths返回所有深度优先的遍历

    [抄题]: Given a binary tree, return all root-to-leaf paths. For example, given the following binary tr ...

  6. 解题报告Best Time to Buy and Sell Stock with Cooldown

    题目 Say you have an array for which the ith element is the price of a given stock on day i. Design an ...

  7. adf错误

    1>无法验证事务处理中的所有行 运行项目报错: javax.faces.el.EvaluationException: oracle.jbo.TxnValException: JBO-27023 ...

  8. 一步步来用C语言来写python扩展-乾颐堂

    本文介绍如何用 C 语言来扩展 python.所举的例子是,为 python 添加一个设置字符串到 windows 的剪切板(Clipboard)的功能.我在写以下代码的时候用到的环境是:window ...

  9. 关于HBase的memstoreFlushSize。

    memstoreFlushSize是什么呢? memstoreFlushSize为HRegion上设定的一个阈值,当MemStore的大小超过这个阈值时,将会发起flush请求. 它的计算首先是由Ta ...

  10. jQuary总结11:jQuery插件封装---jQuery封装 手风琴 动画插件

    完整代码下载点击我的GitHub: https://github.com/XingJYGo/jquery-accordion 1 手风琴的效果展示如下: 2 封装插件目录结构如下: 主要包括:HTML ...