`
chinese.darren
  • 浏览: 99562 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

性能监控/优化系列——CPU相关

阅读更多

 CPU相关

1. 从下向上定位
     1.1 CUP监控(指令执行速度-单位时间内执行的指令条数, CUP缓存的miss率)
     1.2 OS的监控
     1.3 JVM的监控
       工具:Intel VTune or AMD’s CodeAnalyst Performance Analyzer(window/linux)
       选择正确的CPU架构和平台系统很重要,确认应用是否正运行在一个正确的CPU和系统架构上(涉及multiple cores per CPU and multiple hardware threads per core),每个hardware thread在OS看来就是一个processor。
       Oracle SPARC T-series CPU的特点:每个CPU包含多个核,每个核有4个hardware thread,任何时候只有一个hardware thread运行在clock cycle上,当发生latency events时(eg CPU MISS,那么需要去内存取数据,相对于CPU会有延时),另外一个runnable的hardware thread就会进入下一个clock cycle,因此整体的执行效率要高。特别是有大量多线程运行的应用程序。它拥有slower clock rate。
      传统的CPU的特点:每个CPU包含多个核,每个核仅有一个hardware thread或者是hyperthreaded cores,因此当latency events到来时会造成阻塞,从而clock cycle被浪费。另外,因为hardware thread的有限性,会引起大量的线程上下文交换80000以上 clock cycles才能完成)。
2. User CPU utilization is the percent of time the application spends in application code.
3. kernel or system CPU utilization is the percent of time the application spends executing operating system kernel code on behalf of the application
4. 高的system CPU utilization暗示共享资源竞争激励或IO设备交互过多
5. 对于计算密集型应用需要关注:instructions per clock(IPC)和 cycles per instruction(CPI),这个数据的获取不好弄,没有比较好的监控工具,为了提高这种应用的性能主要是减少stalls量,提高CPU的缓存利用率。
6. stall的概念:它是停止运转的意思,发生在当cpu执行时,所需要的数据却不在寄存器或cache中,需要去装载内存的数据,这期间有一个等待,这里叫做stall。这个时间大概是several hundred clock cycles
7. 现代操作系统所提供的CPU利用率的数据包括了CPU的stall,实际上stall期间CPU并没有工作。
8. CPU运行队列的概念(vmstat查看):The run queue is where lightweight processes(linux下进程和线程是统一的,是轻量级进程的两种形式) are held that are ready to run but are waiting for a CPU where it can execute,当准备执行的进程数多于处理器数时就会放入到运行队中。一个长的运行队列表明系统在饱和工作状态。当运行队列的长度4倍于虚拟处理器数或更大时,系统会出现明显的迟缓,需要及时处理。方法一般两个:1. 增加CPU数;2. 减少当个CPU的负载,其实质是reduces the number of active threads per virtual processor and as a result fewer lightweight processes build up in the run queue。当队列长度达到处理器数的1倍时需要开始关注,但不需要处理。
9. 虚拟处理器数的概念:The number of virtual processors is the number of hardware threads on the system,它的值等于Runtime.availableProcessors()。
10.垃圾回收/优秀的算法和数据结构的重要性:reducing garbage collection frequency or alternative algorithms and data structures will result in fewer CPU instructions/ fewer CPU cycles to execute the same work。
11. 常用命令:vmstat/mpstat(列出多个CPU的情况)/top;pstack/jstack查看线程堆栈;如果一个Java进程的CPU使用率很高,命令 prstat -mL 5 can be mapped to a Java process and Java thread(s),然后再结合pstack 3897/2,/jstack命令就可以定位问题了。
Solarisprstat -mL 5命令:
PID USERNAME USR SYS TRP TFL DFL LCK SLP LAT VCX ICX SCL SIG PROC/LWPID
3897 huntch 6.0 5.7 0.1 0.0 0.0 2.6 8.2 78 9K 8K 64K 0 java/2
3897 huntch 4.9 4.8 0.0 0.0 0.0 59 0.0 31 6K 6K 76K 0 java/13
3897 huntch 4.7 4.6 0.0 0.0 0.0 56 0.0 35 5K 6K 72K 0 java/14
3917 huntch 7.4 1.5 0.0 0.0 0.0 3.8 53 34 5K 887 16K 0 java/28
 
发现3897这个进程有三个轻量级进程2/13/14,现在可以通过pstack 3897/2查看这个轻量级进程2的线程堆栈:
----------------- lwp# 2 / thread# 2 --------------------
fef085c7 _lwp_cond_signal (81f4200) + 7
feb45f04 __1cNObjectMonitorKExitEpilog6MpnGThread_pnMObjectWaiter__v_
(829f2d4, 806f800, e990d710) + 64
fe6e7e26 __1cNObjectMonitorEexit6MpnGThread__v_ (829f2d4, 806f800) + 4fe
fe6cabcb __1cSObjectSynchronizerJfast_exit6FpnHoopDesc_
在linux下,top -H查看线程情况,包括CPU,内存等占用情况。进入到top环境后,可以使用P来按照CPU排序,使用M按照内存排序。
分享到:
评论

相关推荐

    万台集群性能优化方法——MaxCompute性能优化实践.zip

    2. 性能指标监控:关注CPU、内存、磁盘I/O等核心指标,及时发现并解决问题。 3. 工具辅助:利用MaxCompute自带的诊断工具,如Profile、Lineage等,进行性能分析和优化建议。 总结,万台集群的MaxCompute性能优化是...

    网络服务器的大脑——CPU.pdf

    【网络服务器的大脑——CPU】 CPU,全称为中央处理器,是计算机系统的核心组件,尤其在网络服务器中扮演着至关重要的角色。服务器的性能很大程度上取决于CPU的效能,它负责处理服务器的所有任务,从数据的读写操作到...

    关系型数据库应用的性能优化——基于SQL Server平台.pdf

    《关系型数据库应用的性能优化——基于SQL Server平台》 关系型数据库在现代信息系统中扮演着核心角色,而SQL Server作为广泛使用的数据库管理系统,其性能优化对于提升整体系统效率至关重要。本文将深入探讨如何在...

    iOS 性能监控 SDK —— Wedjat(华狄特)开发过程的调研和整理.zip

    Wedjat(华狄特)是一款专为iOS开发设计的性能监控SDK,它提供了一系列工具和API,用于监测和分析应用的运行状态。本文将对Wedjat的开发过程进行深入调研和整理,旨在为iOS开发者提供实用的性能优化指导。 首先,...

    Android-Android性能监控检测工具FPSCPUPSSPrivateDirty

    本文将详细介绍Android性能监控检测工具——FPSCPUPSSPrivateDirty,并探讨这些指标在Android系统中的作用。 首先,让我们了解这些术语的含义: 1. **FPS (Frames Per Second)**:帧率,衡量的是设备每秒渲染图像...

    oracle性能监控sql 监控当前会话 执行的sql及io等信息

    Oracle性能监控SQL——监控当前会话执行的SQL及IO等信息 Oracle性能监控是数据库管理员的重要职责之一,通过监控数据库的性能,可以及时发现问题,避免数据库的宕机和性能下降。本文将介绍一些常用的Oracle性能监控...

    Jprofile资料——使用JConsole实现JBoss性能监控

    在Java应用开发和运维中,性能监控是至关重要的一个环节,尤其对于大型的企业级应用服务器如JBoss来说。本文将详细讲解如何利用JConsole工具来实现对JBoss服务器的性能监控,以确保系统的稳定性和效率。 JConsole是...

    nmon/国产性能监控工具nmon.zip

    《国产性能监控工具nmon——飞腾与龙芯平台的高效解决方案》 在信息技术日新月异的今天,国产化软硬件的发展已经成为一种趋势。针对我国自主研发的CPU平台,如飞腾和龙芯,性能监控工具的选择至关重要。"nmon"...

    Java程序性能优化 让你的Java程序更快、更稳定

    Java程序性能优化是每个开发人员都需要关注的重要领域,它涵盖了多个方面,旨在提高代码执行效率,减少资源消耗,以及提升应用程序的稳定性和响应速度。在本文中,我们将深入探讨Java性能优化的关键点,帮助你的Java...

    iOS-Monitor-Platform, iOS 性能监控 SDK —— Wedjat(华狄特)开发过程的调研和整理.zip

    Wedjat(华狄特)是一款专为iOS平台设计的性能监控SDK,它提供了一整套解决方案,用于帮助开发者在应用程序运行过程中实时监控并优化性能。这个压缩包包含的资源是Wedjat SDK的开发过程调研和整理资料,主要用于帮助...

    nmon-LIinux性能监控工具.zip

    **nmon——Linux性能监控工具全面解析** 在Linux系统管理中,实时监控和分析系统性能是至关重要的,尤其是在处理复杂的运维问题时。"nmon"(Nigel's Performance Monitor)正是这样一款强大的性能监控工具,由IBM...

    实战Java虚拟机——JVM故障诊断与性能优化

    4. **性能监控与调优工具**:如JConsole、VisualVM等,这些工具可以帮助开发者实时监控JVM状态,分析CPU、内存、线程等资源的使用情况,从而发现潜在的问题。 5. **异常诊断**:书中会介绍如何通过日志、堆转储...

    大流量Web系统的性能优化实践.

    1. **性能监控**:通过各种监控工具(如Prometheus、ELK Stack等)收集系统指标,及时发现性能瓶颈。 2. **日志分析**:对日志进行收集和分析,为故障排查提供依据。 3. **A/B测试**:通过对比不同优化方案的效果...

    集群监控——信息提取代码

    "集群监控——信息提取代码"这个项目旨在实现从集群环境中实时获取关键信息,以便于管理和优化系统的运行状态。以下是对这个主题的详细阐述: 一、集群监控的重要性 1. 故障预防:通过实时监控,可以及时发现潜在的...

    CPU——cn.zip

    CPU-Z是一款广受欢迎的系统信息工具,主要用于检测计算机硬件,特别是中央处理器(CPU)和内存的相关信息。在本文中,我们将深入探讨CPU-Z的功能、如何使用它以及它能提供的详细信息。 1. CPU-Z简介: CPU-Z是由...

    jmeter性能监控的插件

    本文将深入探讨JMeter中的性能监控插件——ServerAgent。 ServerAgent是JMeter生态系统中的一个组件,主要用于收集服务器端的性能指标,如CPU使用率、内存使用、磁盘I/O和网络流量等。它与JMeter的远程测试(分布式...

    loadrunner 性能监控软件 rstatd.tar.gz

    《LoadRunner性能监控工具——RStatD在Linux资源监控中的应用》 LoadRunner是一款由Micro Focus公司开发的强大性能测试工具,广泛应用于企业级应用系统的性能评估和优化。在本篇文章中,我们将聚焦于LoadRunner的一...

    安卓Android源码——手机远程监控.rar

    10. **性能优化**:为保证远程监控的流畅性和低延迟,开发者可能进行了性能优化,例如利用多线程处理,减少CPU和内存占用,优化图像编码效率等。 以上是对"安卓Android源码——手机远程监控"这一主题可能涉及的关键...

    Linux 获取CPU和内存的大小

    在Linux操作系统中,监控CPU和内存的使用情况是系统管理员日常任务的重要部分,这有助于优化系统性能、排查问题以及合理分配资源。以下是一些获取CPU和内存大小以及使用率的方法。 **一、CPU信息** 1. **查看CPU...

    H264监控软件使用INTEL的CPU

    标题 "H264监控软件使用INTEL的CPU" 暗示了这款软件是专为基于Intel处理器的系统设计的,主要用于视频监控任务。H264,也称为High Efficiency Video Coding(高效率视频编码),是一种广泛使用的视频压缩标准,能够...

Global site tag (gtag.js) - Google Analytics