引言 cpu无端占用高?应用程序响应慢?苦于没有分析的工具? oprofile利用cpu硬件层面提供的性能计数器(performance counter),通过计数采样,帮助我们从进程.函数.代码层面找出占用cpu的"罪魁祸首".下面我们通过实例,了解oprofile的具体使用方法. 常用命令 使用oprofile进行cpu使用情况检测,需要经过初始化.启动检测.导出检测数据.查看检测结果等步骤,以下为常用的oprofile命令. 初始化 opcontrol --no-vmlinux …
引言 cpu无端占用高?应用程序响应慢?苦于没有分析的工具? oprofile利用cpu硬件层面提供的性能计数器(performance counter),通过计数采样,帮助我们从进程.函数.代码层面找出占用cpu的"罪魁祸首".下面我们通过实例,了解oprofile的具体使用方法. 常用命令 使用oprofile进行cpu使用情况检测,需要经过初始化.启动检测.导出检测数据.查看检测结果等步骤,以下为常用的oprofile命令. 初始化 opcontrol --no-vmlinux …
如题,本文的宗旨既是透过对象的生命周期,来梳理JVM内存结构及GC相关知识,并辅以AOP及双亲委派机制原理,学习不仅仅是海绵式的吸收学习,还需要自己去分析why,加深对技术的理解和认知,祝大家早日走上自己的"成金之路". Java对象的创建 本部分,从攻城狮编写.java文件入手,详解了编译.载入.AOP原理. 读过<程序员的自我修养>的朋友,对程序的编译及执行会有一个很清晰的认识:编译其实就是将人类能理解的代码文件转译为机器/CPU能执行的文件(包括数据段.代码段),而执…
Centos6下通过 oprofile分析CPU性能 2014-01-18 10:55:15 bobpen 阅读数 2218更多 分类专栏: linux   版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/bobpen/article/details/18444885 环境 Centos 6.4 x86_64 oprofile-0.9.9 oprofile安装 #wget http://n…
一.原理 在关注事件发生一定次数时,进行一次采样,记录下需要的信息(比如指令寄存器或栈寄存器信息). 二.参数 项 说明 eventname   要关注的事件名称,常用的事件名称及功能如下:   CPU_CLK_UNHALTED(Clock cycles when not halted),就是CPU时钟: CPU的执行时间,性能测试时最常用的事件   LLC_MISSES: L2 cache失效情况. DTLB_MISSES: 数据TLB失效情况.   一般做性能测试时只会用到CPU_CLK_U…
OProfile 性能分析工具 官方网站:http://oprofile.sourceforge.net/news/ oprofile.ko模块本文主要介绍Oprofile工具,适用系统的CPU性能分析,最主要它能深入内核函数,这是很多用户态工具达不到的地方. Oprofile是一个内核态工具,通过oprofile.ko模块内核模块来获取数据需要在加载oprofile.ko模块的时候,传递”timer=1″参数. modprobe oprofile timer=1 oProfilehttp://…
oProfile工具可以分析CPU的负载量 只要对目标程序加上 -g 后重新编译,即可用oProfile进行分析 例如在测试apache的性能时, 增加 -g 编译选项[crifan@localhost lrzsz-0.12.20]$ CFLAGS=-g ./configure 问题:opcontrol --start失败解决办法[root@mysqlmaster03 boot]# opcontrol –deinit[root@mysqlmaster03 boot]# echo 0 > /pro…
安装oprofile,然后加载内核模块.#modprobe oprofile,模块加载后开始使用oprofile. 1. 首先设置监视内核,使用debuginfo提供的内核,/boot下面的内核无法使用 #opcontrol --vmlinux=/usr/lib/debug/boot/vmlinux-xxxxx 如果不需要监视内核 #opcontrol --no-vmlinux 2. 启动oprofile #opcontrol --start 3. 运行被监视的应用 # program run…
http://blog.csdn.net/wlsfling/article/details/5876134http://www.lenky.info/archives/2012/03/1371http://blog.chinaunix.net/uid-361890-id-276370.htmlhttp://www.ibm.com/developerworks/cn/linux/l-oprof/ oprofile:yum install oprofile 1.opcontrol --init 2.…
根据CPU架构oprofile采样的触发有两种模式:1) NMI模式: 利用处理器的performance counter功能, 指定counter的类型type和累进数量count. 比如 type=DTLB_MISS, count=500, 代表"Data TLB miss"每发生500次, 会触发一次中断. Oprofile.ko模块会相应这个中断, 然后看当前正在执行的是什么指令,那个函数, 那个模块(或者app, lib), 并进行计数. 不同的处理器支持的counter类型…
这篇博文是我在基于Ubuntu学习一些知识的札记,方便日后进行不断回顾,这里进行统一记录,当然当学到新的东西也会陆续更新!!!还请各位博主不要见笑,小弟在此谢过~\(≧▽≦)/~啦啦啦!!!! 1.Ubuntu的简单配置: 由于个人原因,我并不喜欢在桌面上放一些很花哨的东西,追求简约一直是我个人所推崇的.所以,我的Ubuntu系统配置也不例外,先上一张桌面的谍照: 1.1 安装Numix主题: 楼主我安装的是Numix Circle系列的主题,个人觉得还不错.依据个人爱好,主题嘛,看着酸爽就Ok…
最近做的项目,由于预算有限,公司决定不采购Windows服务器,而采购基于Linux的服务器. 一般的VPS服务器,如果使用Windows系统,那么Windows Server2012\2016安装好后,就占用1GB的内存了:只要运行起来,2G的内存就用掉了:装上SqlServer.跑个.net,4G内存是标配,用户数量稍微多些4G内存也捉襟见肘了:分配2个VCpu,在桌面状态下不运行任何程序,每个核心的占用率在15%~20%左右. 大家知道64位的CentOS7装好后内存占用是多少吗,用fre…
转载地址:http://www.10tiao.com/html/473/201606/2651473094/1.html   程序的CPU问题是另外一类典型的程序性能问题,很多开发人员都受到过程序CPU占用过高的困扰.本次我们收集了14个CPU类的问题,和大家一起分析下这些问题的种类和原因.另外,对于C/C++程序而言,目前已经有了很多CPU问题定位的工具,本文也会进行比较分析. CPU问题分析   程序CPU类问题的主要现象是:程序占用的CPU过高,比程序升级前有很大的升高.导致程序CPU占用…
4.1进程性能统计信息 4.1.1. 内核时间VS用户时间 一个应用程序所耗时间最基本的划分是内核时间与用户时间.内核时间是消耗在Linux内核上的时间,而用户时间则是消耗在应用程序或库代码上的时间.Linux有工具,如time和ps,可以(大致)表明应用程序将其时间花费在应用程序代码上还是话费在内核代码上. 4.1.2 库时间VS应用程序时间 任何应用程序,即便其复杂性非常低,也需要依赖系统库才能执行复杂的操作.这些库可能导致性能问题,因此,能够查看应用程序在某个库中花费了多少时间很重要了.在…
问题描述: 在对notify执行性能测试时发现cpu负载突然飙高,cpu利用率高达95%.这时候就要排查是哪些线程消耗了cpu,并从代码层找到占用cpu的“罪魁祸首”. 步骤: 1. 先用ps+grep找到被测试的进程pid. 比如:ps –ef|grep notify,得到pid为29128. 2. 执行top -H -p,可显示出该进程下的所有线程.找到占用cpu最多的子线程pid,并将其转换为16进制. 比如:top -H -p 29128,看到notify的所有子线程.其中,%CPU 比…
转载自:http://blog.csdn.net/pppjob/article/details/4060336 在Linux下,CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间,三者之和就是CPU的总时间,当没有用户进程.系统进程等需要执行的时候,CPU就执行系统缺省的空闲进程.从平常的思维方式理解的话,CPU的利用率就是非空闲进程占用时间的比例,即CPU执行非空闲进程的时间 / CPU总的执行时间. 在Linux系统中,C…
oprofile利用cpu硬件层面提供的性能计数器(performance counter),通过计数采样,帮助我们从进程.函数.代码层面找出占用cpu的"罪魁祸首". 常用命令 使用oprofile进行cpu使用情况检测,需要经过初始化.启动检测.导出检测数据.查看检测结果等步骤,以下为常用的oprofile命令. 初始化 opcontrol --no-vmlinux : 指示oprofile启动检测后,不记录内核模块.内核代码相关统计数据 opcontrol --init : 加载…
http://blog.csdn.net/dreambegin/article/details/6904822 原来文章叫--编译内核之初体验.后来想了想,这篇文章让我体验了好多遍.不该叫这么大气的名字,还是改了吧.中间记录了很多在内核移植中可能遇到的问题. 还是把名字改为:愚人的内核移植札记(超曲折版) 千呼万唤始出来,让我们开始移植内核吧! 环境:Ubuntu  +  EABI-4.3.3(就是前边配置好的环境) 内核版本:linux-2.6.34.10          /*这个版本有什么…
转自:http://blog.csdn.net/pppjob/article/details/4060336 在Linux下,CPU利用率分为用户态,系统态和空闲态,分别表示CPU处于用户态执行的时间,系统内核执行的时间,和空闲系统进程执行的时间,三者之和就是CPU的总时间,当没有用户进程.系统进程等需要执行的时候,CPU就执行系统缺省的空闲进程.从平常的思维方式理解的话,CPU的利用率就是非空闲进程占用时间的比例,即CPU执行非空闲进程的时间 / CPU总的执行时间. 在Linux系统中,CP…
一.内核支持: make menuconfig 1.评测菜单中启用 Oprofile ,在 .config 文件中设置?CONFIG_PROFILING=y?和?CONFIG_OPROFILE=y 2.Kernel Feature->[]Enable hardware performance counter support for perf events不要勾选 3.在boot options->console=ttyFIQ0 androidboot.console=ttyFIQ0 init=…
来源: http://blog.itpub.net/24435147/viewspace-694470/ CPU的主要指标: CPU Utilization CPU 使用率,CPU的使用时间百分比,75%以上就比较高了. 在任意时间内,CPU有7个状态: 1.idle,表示CPU闲置并等待工作分配. 2.user,表示CPU在运行用户的进程 3.system,表示CPU在执行kernel工作 4.nice,表示CPU花费在被nice改变过优先级的process上的时间(注意:被nice命令改变优…
1,主频 主频 = 时钟频率,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍; 时钟频率又称主频,它是指CPU内部晶振的频率,常用单位为MHz,它反映了CPU的基本工作节拍; 2,时钟周期 时钟周期 t =1/ f; 主频的倒数 3,机器周期 机器周期A  = m*t ;一个机器周期包含若干个时钟周期 4,指令周期 指令周期B = m*t*n; 执行一条指令所需要的时间,一般包含若干个机器周期 5,CPI CPI = m*n;  平均每条指令的平均时钟周期个数 指令周…
一.oprofile简介 Oprofile是linux上的性能监测工具,有人说是性能测试的神器.通过CPU硬件提供的性能计数器对事件进行采样,从代码层面分析程序的性能消耗情况,找出程序性能的问题点. oProfile是Linux平台上的一个功能强大的性能分析工具,支持两种采样(sampling)方式:基于事件的采样(eventbased)和基于时间的采样(timebased). 基于事件的采样是oProfile只记录特定事件(比如L2 cache miss)的发生次数,当达到用户设定的定值时oP…
Java_面试札记  为了不死,我愿献出生命 背景:记录下寄几和friend在2020年Java面试中遇到的problem. 1.MySQL索引结构? 基本上所有的索引都是B-Tree结构,还有一部分是HASH索引:B-Tree数据结构的简单说明: 1.B-Tree结构首先是分成很多节点,一个节点上面有很多的关键字(建立索引的字段),这些关键字在节点上是按照顺序排列的: 2.在一个节点上,每一个关键字的前面都有一个下个节点的指针,所以在一个节点上面,关键字的数量总是比节点的数量少一个: 3.每个…
https://www.codetd.com/article/1137423 <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel CPU Xeon E7-**** v4的测试以及调优,计划在机器I840-G**测试.本次测试主要从硬件调优和操作系统调优两个方面进行.经过最终的测试,SPECint_rate_base和SPECfp_rate_base结果均超过Intel的预期.其中调优过程尤为重要,为后续继续的测试达下基础.下面记录中间…
基于RedHatEnterpriseLinux V7(RHEL7)下SPEC CPU 2006环境搭建以及测试流程(之一)--介绍.安装准备.安装.config文件以及运行脚本介绍 其他 2018-05-30 13:27:18 阅读次数: 0  https://www.codetd.com/article/1137423 <版权声明:本文为博主原创文章,未经博主允许不得转载> 本次利用SPECCPU2006测试工具来进行Intel CPU Xeon E7-**** v4的测试以及调优,计划在机…
内核态的出现,让计算机系统的权力向操作系统高度集中了. 操作系统分出内核态和用户态,就是为了进行不同等级的权限管理, 从而更好的适应多用户多任务并发的工作环境. 用户态和内核态的来源 在早期的单进程单用户操作系统中,是不存在两种用户态的. 随着进程和用户的出现,当时的计算机面临着一个重要问题,就是如何限制不同进程的操作的权限.(因为操作系统无法预测未来会出现什么样的进程) 把计算机内部想象成一个有条不紊的工厂,那必须在管理者和被管理者之间制定好规则,每个职位的权限都一定要确定好. 所以当时的工程…
2.2 追求并发的极致-线程概论 为了追求程序运行之间的并发性,计算机科学家们发明了进程.为了进一步的追求进程内部的并发性,工程师们又提出了线程. 正是线程的出现,给予了程序员更多地操纵OS的自由,可惜大多数程序员承担不起这种责任. 1.线程的诞生--将进程进一步细分 进程作为操作系统资源分配的最小单位,它的出现解决了操作系统并发执行任务的需求. 但是随着多核CPU的出现,人们希望能够通过继续拆分进程,实现计算速度的进一步提升. 比如一个听歌软件,它提供播放音乐和搜索音乐两个功能,其中播放音乐使…
2.1 动为进程,静为程序 -进程概论 目录 2.1 动为进程,静为程序 -进程概论 问1:发明进程的原因? 问2:现在计算机中的进程的定义是什么? 问3:为什么进程跟处理器的联系更密切? 问4:进程的主要特性有哪些? 问5:进程的主要状态: 问1:发明进程的原因? 早在20世纪60年代,进程的思想就已经被IBM的工程师们构想出来,并且一直延续到今天.当时的计算机面临着,一段时间内要轮转并发执行多个任务的要求,这要求各个程序之间占据的内存空间互不干扰,程序通过统一的程序编号进行访问控制. 但是在…
1.3 操作系统的第三个功能--存储管理功能 作者zobol:关于操作系统概论-存储管理功能,我给出下列问题: 目录 1.3 操作系统的第三个功能--存储管理功能 问1:操作系统的文件管理系统主要是负责哪些任务? 问2:为什么数据的转移会成为影响计算机的性能的主要原因? 问3:硬盘.内存.Cache都是什么? 问4:存储器内部的读取方式对计算机性能有影响吗? 问5:操作系统是怎么根据CPU发出的消息得到数据的位置? 一般来讲,制约我们计算机使用快慢感觉的瓶颈,不在于CPU的计算速度(正常情况下,…