参考《全栈性能测试修炼宝典JMeter实战》第九章 性能监控诊断 第二节 系统性能分析思路和第三节 定位分析

  系统在工作负载中的性能受到许多因素影响,处理器速度、内存容量、网络或磁盘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—系统性能分析思路

    系统在工作负载中的性能受到许多因素影响,处理器速度.内存容量.网络或磁盘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. Jmeter接口测试之参数传递(十三)

    在接口自动化测试中,经常会遇到的一种场景就是参数的场景,比如在用户列表中获取所有的用户列表,然后获取到某一个用户的ID,查看该用户的详细信息.首先在这里理清思路,它的流程是,首先获取到数据,然后在Jm ...

随机推荐

  1. 剑指offer【01】- 二维数组中的查找(Java)

    在经历了春招各大公司的笔试题和面试官的血虐之后,决定要刷一些算法题了,不然连面试机会都没有. 而应对笔试和面试,比较出名的就是剑指offer的题目和LeetCode的题目了.剑指offer应对面试中的 ...

  2. Javascript:alert(1)可以这样写以绕过filter

    在2011年的BlackHat DC 2011大会上Ryan Barnett给出了一段关于XSS的示例javascript代码: ($=[$=[]][(__=!$+$)[_=-~-~-~$]+({}+ ...

  3. SQL Server性能优化(10)非聚集索引的存储结构

    一,新建测试表 CREATE TABLE [dbo].[Users]( ,) NOT NULL, ) NOT NULL, [CreatTime] [datetime] NOT NULL ) ON [P ...

  4. Retrofit2+Rxjava2的用法

    近几年,Retrofit犹如燎原之火搬席卷了整个Android界.要是不懂Retrofit,简直不好意思出门... 由于近几个项目都没用到Retrofit,无奈只能业余时间自己撸一下,写的不好的地方, ...

  5. MyBatis大杂烩

    1. 集成到SpringBoot项目中 核心依赖是org.mybatis.spring.boot:mybatis-spring-boot-starter,当然还需要jdbc和数据库驱动 build.g ...

  6. 使用配置文件自定义Ribbon配置

    1.application.yml——Ribbon配置文件 debug: false spring: application: name: mcc-ribbon-properties cloud: c ...

  7. 自动化发布-GitLab WEB Hooks 配置

    钩子(hooks) hooks是在特定事件发生之前或之后执行特定脚本代码功能(从概念上类比,就与监听事件.触发器之类的东西类似). Git hooks就是那些在Git执行特定事件(如commit.pu ...

  8. 自己实现的ajax分页js

    /** * 分页 * @author chenqionghe * @param data json数据,包含totalPage,count * @param page 获取的页数 * @param o ...

  9. 2017ACM/ICPC亚洲区沈阳站(部分解题报告)

    HDU 6225 Little Boxes 题意 计算四个整数的和 解题思路 使用Java大整数 import java.math.BigInteger; import java.util.Scann ...

  10. USB 驱动(监测鼠标左键的动作)

    (基于 Linux 3.4.2 内核) 可分为以下几个步骤来完成这个驱动: 1. 分配设置一个 usb_driver 结构体 2. 注册这个 usb_driver (如果设备的 id_table 与驱 ...