`
chinese.darren
  • 浏览: 98683 次
  • 性别: 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按照内存排序。
分享到:
评论

相关推荐

    linux操作系统性能监控优化–CPU、Memory、IO、Network

    操作系统性能监控优化不外乎对CPU、Memory、IO、Network这四个方面,下面分别介绍使用工具和指标  一、CPU  1、良好状态指标  CPU利用率:User Time <= 70%,System Time <= 35%,User Time + System...

    PLSQL Developer 10.0.5.1710〖附中文补丁和注册机〗

    性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。  更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计...

    PLSQL Developer 10.0.4.1708〖附中文补丁和注册机〗

    性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。  更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计...

    PL/SQL Developer v8.0.zip

    性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计...

    PL/SQL Developer

     性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。  更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该...

    PLSQL Developer 7.1.5

     性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。  更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该...

    PL/SQL Developer 6.05注册版-1

    <br>性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息...

    PL/SQL Developer 7.1.5 注册版-3

    <br>性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息...

    PL/SQL Developer 7.1.5 注册版

    <br>性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息...

    PLSQL Developer(免安装、汉化版,很好用的) 8.0.3.1510.rar

     性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。  更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该...

    【白雪红叶】JAVA学习技术栈梳理思维导图.xmind

    关于java程序员发展需要学习的路线整理集合 技术 应用技术 计算机基础知识 cpu mem disk ... 线程,进程 第三方库 ... UMPAY——编码规范 ... 性能监控 告警 日志 设计模式 数据结构与算法 各种工具

    个性化电脑打造 黎文锋 编著[.PDF]

    第9章 精益求精——硬件监控、检测与优化 9.1 核心硬件的检测与优化 9.2 显卡性能的测试 9.3 显示器性能的测试 9.4 硬盘和光驱性能的测试 9.5 整机性能测试 9.6 本章小结 第10章 妙手回春——电脑软硬件故障的排除 ...

    PLSQLDeveloper下载

    性能优化——使用PL/SQL Profiler,可以浏览每一执行的PL/SQL代码行的时序信息(Oracle8i或更高),从而优化您SQL和PL/SQL的代码性能。 更进一步,您还可以自动获取所执行的SQL语句和PL/SQL程序统计信息。该统计...

    全球软件开发大会2021上海站ppt合集(28个主题共84份).zip

    Arm 基于性能监控单元(PMU)的性能分析实践.pdf ClickHouse 企业级应用和最佳实践.pdf DPU 的前世今生.pdf Fluid:开源云原生弹性数据集编排和加速系统.pdf G1 GC 性能优化实战.pdf Gazelle 引擎 - 本地化 Spark ...

    3G手机等嵌入式技术终端实现监控,视频会议,即时通讯的平台开发

    手机操作系统目前支持Windows Mobile 5.0、Windows Mobile 6.0以及Windows Mobile 6.1系列; 支持Symbian S60、苹果iPhone OS 3.0和谷歌Android平台的手机终端软件稍后将陆续发布,目前正在研发过程中。 手机硬件...

    Oracle DBA 参考手册

    10.1.1. 性能优化的内容 48 10.1.2. 不同类型系统的优化 48 10.1.2.1. 在线事务处理信息系统(OLTP) 48 10.1.2.2. 数据仓库系统(Data Warehousing) 48 10.2. SQL语句的优化 48 10.2.1. SQL语句的优化规则 48 ...

    计算机应用技术(实用手册)

    内存模块上的EEPROM (只读存储器) 储存有关模块的重要参数信息,例如内存类型、大小、速度、电压接口及模块储存区域。 CAS Latency Time: 这个项目可控制DRAM读取指令与数据成为真正可用的时间之间的延迟时间。...

    JAVA上百实例源码以及开源项目源代码

    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...

    JAVA上百实例源码以及开源项目

    J2ME优化压缩PNG文件 4个目标文件 内容索引:JAVA源码,综合应用,J2me游戏,PNG,图形处理  这是个J2ME控制台程序,它能剔除PNG文件中的非关键数据段,减少文件大小从而达到压缩图片的目的。而图片的质量并不会受到损失...

Global site tag (gtag.js) - Google Analytics