`
m635674608
  • 浏览: 5026720 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

压力测试衡量CPU的三个指标:CPU Utilization、Load Average和Context Switch Rate

 
阅读更多
Linux下cpu使用率load average的简单理解
 
load average一般可以通过top或者uptime观察到,格式如下: 
load average: 0.10, 0.05, 0.58 
 
分别代表了最近1分钟,5分钟,15分钟CPU的平均负载情况 
 
如果是单核CPU的话,1.00就表示CPU已经满负荷了, 
如果是多核CPU的话,load average达到CPU的核数即说明该CPU已经满负荷了, 
如果是多颗物理CPU,则当load average达到所有物理CPU的总核数时,说明系统CPU满负荷了。 
 
简而言之,CPU的核数即为我们根据load average衡量CPU负载的依据。 
 
那么当CPU负载达到哪个值时,就该引起我们注意了呢?按照参考文章给的经验值是CPU核数减去0.3, 
即如果CPU总核数为4,当load average上15分钟的数值达到3.7时,我们就该好好进系统看看了。

 

 

CPU Utilization 好理解,就是CPU的利用率,75%以上就比较高了(也有说法是80%或者更高)。除了这个指标外,还要结合Load Average和Context Switch Rate来看,有可能CPU高是因为后两个指标高导致的。

 

Load Average ,这个很难衡量。网上搜了一圈,还没见到几个合理的解释。我100个并发用户测试数来这两个值是:77.534%,6.108,CPU利用率比较高,Load Average也好像有点高。后来发现了如下两片博文: 理解Load Average做好压力测试 ,“Load Average CPU Load,它所包含的信息不是 CPU的使用率状况,而是在一段时间内 CPU正在处理以及等待 CPU处理的进程数之和的统计信息,也就是 CPU使用队列的长度的统计信息。 ”,基本解释了multi-process,multi-thread程序的原理。理解Linux处理器的负载均值(翻译) ,简单说起来就一句话:

 

    Load Average < CPU个数 * 核数 *0.7

 

比如1个1核CPU,Load Average < 1 * 1 * 0.7;1个4核的CPU,Load Average必须 < 1 * 4 * 0.7 = 2.8。

 

查看cpu的信息:grep 'model name' /proc/cpuinfo

 

Context Switch Rate 。就是Process(Thread)的切换,如果切换过多,会让CPU忙于切换,也会导致影响吞吐量。《高性能服务器架构 》这篇文章的第2节就是说的是这个问题的。究竟多少算合适?google了一大圈,没有一个确切的解释。Context Switch大体上由两个部分组成:中断和进程(包括线程)切换,一次中断(Interrupt)会引起一次切换,进程(线程)的创建、激活之类的也会引起一次切换。CS的值也和TPS(Transaction Per Second)相关的,假设每次调用会引起N次CS,那么就可以得出

 

     Context Switch Rate = Interrupt Rate + TPS* N

 

CSR减掉IR,就是进程/线程的切换,假如主进程收到请求交给线程处理,线程处理完毕归还给主进程,这里就是2次切换。也可以用CSR、IR、TPS的值代入公式中,得出每次事物导致的切换数。因此,要降低CSR,就必须在每个TPS引起的切换上下功夫,只有N这个值降下去,CSR就能降低,理想情况下N=0,但是无论如何如果N >= 4,则要好好检查检查。另外网上说的CSR<5000,我认为标准不该如此单一。

 

其他信息:

这三个指标在LoadRunner中可以监控到;另外,在linux中,也可以用vmstat查看r(Load Arerage),in(Interrupt)和cs(Context Switch)

#vmstat 1 5

procs --------------memory-------------    ----swap-- ---io--   -system------cpu----
 r   b   swpd   free     buff       cache         si   so    bi    bo   in   cs us sy id wa
 0  0 244644  29156 415720 2336484    0    0     1    49    2    1      1  0 98    0
 0  0 244644  29140 415720 2336484    0    0     0    28    9    115  0  0 99    1
 0  0 244644  29140 415720 2336484    0    0     0    24    62  256  0  0 100  0
 0  0 244644  29140 415720 2336484    0    0     0     0     5    93    0  0 100  0
 0  0 244644  29140 415720 2336484    0    0     0     0     58  255  0  0 100  0

 

 

Interrupt Rate包括内核由于进程的时间片中断。(在 Linux 2.6 中,系统时钟每 1 毫秒中断一次时钟频率,用 HZ 宏表示,定义为 1000,即每秒中断 1000 次。系统不一样,内核不一样配置100、250的都有。)

内核的时钟频率可以通过如下命令知道

cat /boot/config-`uname -r` | grep '^CONFIG_HZ='

CONFIG_HZ=100

每秒总的时钟中断数就是 = cpu个数 * 核数 * CONFIG_HZ

 

cat /proc/interrupts

          CPU0       CPU1       CPU2       CPU3       
LOC:   97574747   52361843  105207680   69447653   Local timer interrupts
RES:     107368     257510      98635     186294   Rescheduling interrupts
CAL:      14174      14206      14164        194   function call interrupts
TLB:    1007949     853117     992546     591410   TLB shootdowns

可以查看中断的类型以及次数 

 

后记:

发现一篇Linux性能监控的文章,特贴在这里,供参考

http://blog.csdn.net/tianlesoftware/archive/2011/02/21/6198780.aspx

 

https://my.oschina.net/tantexian/blog/648911

分享到:
评论

相关推荐

    压力测试衡量CPU的三个指标

    压力测试衡量CPU的三个指标是指CPU Utilization、Load Average和Context Switch Rate,这三个指标是衡量CPU性能的重要指标。 CPU Utilization CPU Utilization是指CPU的利用率,也就是CPU当前的工作负载。一般来说...

    LoadRunner监控到的Linux服务器CPU的一些主要指标说明.pdf

    LoadRunner 是一款性能测试工具,可以对 Linux 服务器的 CPU 进行监控和分析,本文将对 LoadRunner 监控到的 Linux 服务器 CPU 的主要指标进行说明。 一、 CPU Utilization CPU Utilization 是 CPU 的使用率,表示...

    High CPU Utilization on Cisco IOS Software-Base Catalyst 4500 Switches

    **三、基线CPU使用率** 在进行故障排除之前,了解正常操作下的CPU使用率基线至关重要。通过定期监控并记录CPU利用率,可以更准确地识别异常活动。一般而言,一个健康运行的Catalyst 4500交换机的CPU使用率应保持在...

    K8S之HPA基于CPU指标实现pod自动扩缩容测试用例

    标题中的“K8S之HPA基于CPU指标实现pod自动扩缩容测试用例”指的是在Kubernetes(K8s)环境中,通过水平Pod自动扩展器(Horizontal Pod Autoscaler,简称HPA)来根据Pod的CPU使用率进行自动扩缩容的测试案例。...

    性能测试指标、监控服务器的一些方法.docx

    - 在LoadRunner Controller中添加Unix Resource图表来远程监控指标,包括Average Load、CPU Utilization、Swap-in/out rate、Context Switches rate等。 - 磁盘指标如Collision rate和Disk rate帮助识别网络和磁盘...

    性能测试报告-demo模板

    性能测试的目的是为了评估软件系统在一定的负载和压力下的性能,以确保软件系统能够满足用户的需求。 二、性能测试的类型 性能测试可以分为以下几种类型: * 负载测试(Load Testing):评估软件系统在高并发请求...

    loadrunner unix计数器

    6. **Incoming Packages Error Rate** 和 **Error Outgoing Packages Rate**:这两个指标分别表示接收和发送数据包时的错误率,高错误率可能意味着网络连接不稳定。 7. **Incoming Packages Rate** 和 **Outgoing ...

    Linux服务器CPU的一些主要指标说明.pdf

    首先,CPU利用率(CPU Utilization)是衡量CPU繁忙程度的重要参数,它表示CPU在特定时间内用于执行任务的比例。当CPU利用率超过75%,表明系统可能处于较重的负载状态。CPU有7种状态:idle(空闲)、user(用户态)、...

    计算机组成原理之计算机性能指标

    IPS(Instructions Per Second)和FLOPS(Floating-Point Operations Per Second)是衡量CPU性能的其他两个重要指标。IPS是衡量CPU在一秒钟内执行多少条指令的指标,而FLOPS是衡量CPU在一秒钟内执行多少次浮点运算的...

    GBase8s数据库监控指标.doc

    监控GBase8s数据库的性能和健康状况至关重要,这涉及到多个方面的指标,包括系统类指标、OS指标、数据库特定指标等。以下是对这些指标的详细说明: 1. **CPU指标**: - **CPU Busy Rate**:表示CPU处理任务的繁忙...

    Linux性能指标含义及参考范围

    下面,我们将详细解析几个核心性能指标,包括CPU利用率、平均负载、分页率、交换率以及磁盘和网络活动率等。 ### CPU Utilization(CPU利用率) #### CPU Utilization CPU利用率指的是CPU在单位时间内被占用的...

    性能测试中常见的数据库指标

    在性能测试中,数据库指标是评估系统性能的关键因素,它们能帮助我们理解数据库在处理请求、存储数据和响应用户操作时的表现。以下是一些常见的数据库性能指标及其详细解释: 1. **查询速率(Queries Per Second, ...

    软件性能测试报告样例

    - **Cpuutilization**:反映了CPU的利用率,是衡量系统处理能力的关键指标之一。 - **Pageingrate**:页面交换速率,用于监控内存使用情况,过高的页面交换速率可能表明内存不足。 #### 三、测试过程 **3.1 邀请我...

    cacti CPU多核心 CPU占用集中到一张图上

    在这个主题中,我们关注的是如何利用Cacti来集中展示多核心CPU的占用情况,以便于进行系统监控和性能分析。 在“cacti CPU多核心 CPU占用集中到一张图上”的场景中,目标是将不同CPU核心的使用率整合到一个图表中,...

    系统并发压力性能测试报告.docx

    1. **需求分析**:明确测试目标,确定需要测试的场景和指标。 2. **脚本开发**:根据需求编写测试脚本,模拟真实用户的操作。 3. **环境准备**:搭建测试环境,包括测试服务器和客户端。 4. **执行测试**:按照计划...

    Loadrunner监控Linux的17个指标

    这些指标共同构成了一个全面的视角,帮助运维人员和测试工程师识别Linux系统在不同层面的性能瓶颈和潜在问题,从而采取相应的优化措施,确保系统稳定性和响应速度。然而,正如标题中所强调的,“按需而设”的原则至...

    How to diagnose the high CPU utilization of ORACLE.EXE in Windows environment

    在Windows环境中,诊断ORACLE.EXE高CPU使用率的问题是一个常见的数据库性能调优任务。当用户抱怨数据库响应缓慢时,通常会发现ORACLE.EXE进程在任务管理器中占用几乎100%的CPU资源。然而,根据你的了解,数据库活动...

    LoadRunner入门与提升(有目录)

    3. 性能测试指标:性能测试过程中会关注多个指标,包括: - 响应时间(Response Time):用户发起请求到系统返回结果的时间。 - 吞吐量(Throughput):单位时间内系统处理的请求数量。 - 并发用户数(Concurrent...

Global site tag (gtag.js) - Google Analytics