一、CPU监测:
Windows:
1、Task Manager
显示内核CPU时间: view -> Show Kernel Times
2、Performance Monitor (perfmon)
3、typeperf
typeperf "\Processor(_Total)\% Privileged Time" "\Processor(_Total)\% User Time"
Linux:
1、gnome-system-monitor(图形工具)
2、vmstat
cpu->sy : 系统时间%
cpu->us : 用户时间%
cpu->id : 空闲时间%
cpu->wa : 等待IO时间%
3、mpstat
需要先安装sysstat:
# apt-get install sysstat
4、top
二、CPU 调度队列监测:
Windows :
1、Performance Monitor (perfmon)
System > Processor Queue Length from Add Counters dialog.
2、typeperf
间隔5秒:
typeperf -si 5 "\System\Processor Queue Length"
Linux:
1、vmstat
procs->r :运行队列中的进程数,在一个稳定的工作量下,应该少于5
procs->b:等待队列中的进程数(等待I/O),通常情况下是接近0的
二、Memory监测:
Window:
1、Performance Monitor(perfmon)
Memory->Pages/second : 每秒交换页数
Memory->Available MBytes : 可用内存
每秒交换页数高,可用内存少说明系统内存不足,在做磁盘交换(swap)。
2、typeperf
typeperf -si 5 "\Memory\Available Mbyptes" "\Memory\Pages/sec"
Linux:
1、vmstat
swap->si : 换入页数
swap->so: 换出页数
memory->swapd: 已使用虚拟内存大小
memory->free : 可用内存
memory->buff: 作为buffer cache的内存,对块设备的读写进行缓冲
memory->cache: 作为page cache的内存, 文件系统的cache。如果 cache 的值大的时候,说明cache住的文件数多,如果频繁访问到的文件都能被cache住,那么磁盘的读IO bi 会非常小。
三、Lock Contention(锁竞争)监测
Windows:
1、perfmon,typeperf只能监测总的上下文切换次数,不能区分主动还是被动。
2、区分主动和被动上下文切换次数,需要借助:1、Intel VTune 2、AMD CodeAnalyst
Linux:
1、pidstat
cswch/s:每秒自发的上下文切换次数
nvcswch/s:每秒非自发的上下文切换次数
监测Pid=9391的进程,并每5秒输出一次结果:
$ pidstat -w -I -p 9391 5
Linux 2.6.24-server (payton) 07/10/2008
08:57:19 AM PID cswch/s nvcswch/s Command
08:57:26 AM 9391 3645 322 java
08:57:31 AM 9391 3512 292 java
08:57:36 AM 9391 3499 310 java
为了估算浪费在上下文切换上的时钟周期百分比,上面通过pidstat -w监测的系统,每秒大概发生3500个上下文切换 , 一个3.0GHz 双核Intel CPU. 因此, 3500 除以2,虚拟的进程数 = 1750. 1750 * 80,000 = 140,000,000. 一个 3.0GHz 处理器每秒的时钟周期数是 3,000,000,000. 这样, 浪费在上下文切换上的时钟周期比率是 140,000,000/3,000,000,000 = 4.7%. 通常如果 3% 到 5% 时钟周期发生在主动的上下文切换上,暗示一个Java应用可能存在锁竞争。
高非自发上下文切换暗示有比CPU核数更多的线程需要运行。通常用vmstat监测会发现有高的运行队列长度,高的CPU利用率,高的migrations。Linux可以通过taskset命令,并将应用绑定到指定的taskset。Window系统, 可以通过任务管理器的Process标签,将应用绑定到处理器或者处理器集。
四、Thread Migrations(线程迁移)监测
线程迁移是指准备运行的线程在多核处理器(CPU核心)的核心之前的迁移。如果准备运行的线程在不同CPU核心之间频繁迁移也会引起性能下降。解决高迁移率的办法是,创建处理器集(processor set),并将应用绑定到指定的处理器集。通常经验,如果Java应用有超过每秒500个迁移,绑定到指定处理器集可以改善性能。
相关推荐
- **性能监测:** 实时监测系统在负载压力下的性能变化,包括响应时间、吞吐量等关键指标。 - **结果分析:** 提供详尽的数据报告和图形化展示,帮助开发者和测试人员快速定位问题。 #### 二、LoadRunner的组成部分...
性能测试中常见文档有性能测试计划、性能测试用例、性能测试方案、性能测试报告,直接参照项目实例来编写,可以快速上手。 一、性能测试计划(实例).docx 二、性能测试用例(实例).docx 三、性能测试方案(实例)....
软件测试 性能测试 性能测试报告 系统性能测试方案 性能测试经验 测试模板 “苍蝇式的战斗精神”和“XX性能测试”.pdf Mercury性能测试模板.doc web项目测试实战性能测试结果分析样章.doc XX性能测试报告.pdf XX性能...
性能测试的组织章节讨论了测试团队的人员构成和测试过程模型,包括测试前期准备、测试工具引入、测试计划、测试设计与开发、测试执行与管理、测试分析等阶段,这些阶段构成了完整的性能测试生命周期。 实践篇则是对...
在软件开发过程中,性能测试是不可或缺的一环,它旨在评估和优化系统在各种负载和压力条件下的表现。软件性能测试记录表是用来系统性地记录这些测试过程和结果的重要工具。以下将详细介绍“软件性能测试记录表”的...
nmon 工具可以为 AIX 和 Linux 性能专家提供监视和分析性能数据的功能,其中包括: CPU 使用率 内存使用情况 内核统计信息和运行队列信息 磁盘 I/O 速度、传输和读/写比率 文件系统中的可用空间 磁盘适配器 网络 I/O...
《全栈性能测试修炼宝典》是一本专为IT专业人士准备的深度学习资源,主要聚焦在性能测试领域。性能测试是软件开发过程中不可或缺的一环,它确保应用在高负载、大规模用户并发等真实环境中能够稳定运行,提升用户体验...
总的来说,JMeter性能测试报告提供了全面的性能测试分析,包括测试目标、测试环境、执行的测试类型以及详细的测试结果,为优化和提升系统性能提供了依据。通过这样的报告,测试工程师能够深入理解系统的性能瓶颈,...
【性能测试-Jmeter.pptx】的培训内容涵盖了性能测试的多个重要环节,包括数据制造、性能测试方案设计、脚本执行、性能监控与调优以及编写性能测试报告。以下是对这些知识点的详细阐述: 1. **如何制造数据**: - ...
【性能测试报告】 1. 引言 性能测试是评估Web项目在预期及高负载情况下运行效率的关键步骤。本报告旨在全面分析XXXX项目的性能表现,包括系统稳定性、响应时间和处理能力等多个方面。测试背景涉及了项目的实际运营...
软件测试实验报告(使用LoadRunner进行性能测试实验) 一、性能测试简介 性能测试是软件测试中的一种重要类型,以评估软件系统在高并发和大负载下的性能和可扩展性。LoadRunner是一款成熟的性能测试工具,广泛应用...
2. **测试类型**:检查表会涵盖不同的性能测试类型,如负载测试(模拟正常工作负载)、压力测试(超出正常工作负载以测试系统的极限)、耐久测试(长时间运行以检查系统稳定性)和稳定性测试(检查系统在高负载下...
【RabbitMQ性能测试报告】 本测试报告详细记录了对RabbitMQ的性能评估,包括在单机模式和集群模式下的压力和稳定性测试。RabbitMQ是业界广泛使用的开源消息代理,它基于AMQP(Advanced Message Queuing Protocol)...
了解系统性能需求是为了了解软件系统的性能需求,建立数据模型是为了建立软件系统的数据模型,分析性能需求是为了确定合理的性能目标,制定性能测试计划是为了确保性能测试的可靠性和有效性,设计场景是为了测试软件...
《网络性能测试与分析》是一门深入探讨网络性能评估、监测和优化的学科,主要针对计算机网络中的数据传输效率、延迟、带宽利用率等问题进行研究。这个PDF课件是大学教材的一部分,旨在帮助学生和专业人士理解网络...
性能测试是软件开发过程中的重要环节,主要用于评估和优化系统的处理能力和响应时间,确保系统在高负载下仍能稳定运行。本入门指南将带你走进性能测试的世界,了解其基本概念、重要性以及如何进行实际操作。 一、...
### Jmeter性能测试报告模板知识点解析 #### 一、性能测试概述 性能测试是一种软件测试类型,用于评估软件系统的性能,特别是在高负载下系统的行为。它可以帮助开发人员和测试工程师了解系统在各种条件下的表现,...
腾讯GT,全称为“Gaming Toolkit”,是由腾讯公司推出的一款专业性能测试工具,主要应用于移动应用和游戏的性能分析与优化。GT旨在帮助开发者深入理解和改善他们的应用程序在真实设备上的运行效率,确保产品在各种...