褚霸 核心系统数据库组 chuba@taobao.com http://yufeng.info 2010/11/15 Oprofile 系统层面的性能微调工具 褚霸 核心系统数据库组 chuba@taobao.com http://yufeng.info 2010/11/15.

Slides:



Advertisements
Similar presentations
定 格 入 格 破 格 —— 新诗仿写复习训练 仿照下列句子,再把 “ 人生 ” 比喻成 “ 大海 ”“ 天空 ” , 造两个句子。 如果说人生是一首优美的乐曲,那么痛苦则 是其中一个不可或缺的音符。 参考答案: 1 、如果说人生是一望无际的大海,那么挫折则 是其中一个骤然翻起的浪花。 2 、如果说人生是一片湛蓝的天空,那么失意则.
Advertisements

青少年儿童常见伤害的预防. 伤害的定义 伤害是指各种物理性、化学性或生物性 事件而导致人体发生暂时或永久性损 伤、死亡和残疾的一类疾病的总称。
1 教師敘薪 Q & A 教師敘薪 Q & A 新竹縣立新湖國中 陳淑芬 新竹縣立自強國中 楊美娟
103 學年度縣內介聘申請說明會 南郭國小 教務主任張妙芬.  重要作業日程 : 1 、 5/1( 四 ) 前超額學校 ( 含移撥超額 ) 備文函報縣府教 育處輔導介聘教師名單 2 、 5/7( 三 ) 超額教師積分審查( 9 : : 00 、 13 : : 00 )。 3.
大學甄選申請入學 〃備審資料 〃面試. 確認你的追求對象 學校環境概況 系別特質 有無交換學生 未來出路 性質相似的科系要清楚之間的差別 ex: 社會福利學系,社會工作學系, 社會學系.
人文行動考察 羅東聖母醫院 老人醫療大樓 吳采凌 黃玨宸 劉映姍 陳嫚萱.
焦點 1 陸域生態系. 臺灣的陸域生態系 臺灣四面環海 黑潮通過  高溫, 雨量充沛 熱帶, 亞熱帶氣候.
景美樣品房工程變更 / 追加請款 / 說明 102/08/09 樣品房停工 102/10/10 樣品房完工 102/09/26 向工務部提出 追加工程估價單 102/10/25 經工務部審核 轉送採發部門 102/09/03 工地會議 確認後續施工方式 102/11/ /11/ /12/09.
統計之迷思問題 保險 4B 張君翌. 迷思問題及教學者之對策 常見迷思概念教學者之對策 解題的過程重於答案 例 : 全班有 50 位同學,英文不及格的有 15 人,數學不及格的有 19 人,英文與 數學都及格的有 21 人。請問英文與數 學都不及格的有幾人? 老師常使用畫圖來解決這樣的問題,英文和.
社團法人台南市癲癇之友協會 講師:王乃央老師
第七章 外營力作用 第一節 風化 第二節 崩壞 第三節 侵蝕與堆積.
物理治療師之僱傭關係 九十二年四月十二日.
勿讓權利睡著- 談車禍之損害賠償與消滅時效.
二、開港前的經濟發展 (一)土地開墾和農業發展 1.漢人移民的遷徙與拓墾 (1)遷徙 A.居住區 a.泉州人最多:沿海
設計新銳能量輔導 實習期中感想 實習生:賴美廷 部落格:TO13004.
环科系12级毕业实习动员会 -平安、感恩、责任
國立屏東科技大學通識教育中心 助理教授 王國安
日本的〈地獄劇〉 與 中國的〈目連戲〉.
授課教師:羅雅柔 博士 學員:吳沛臻/邱美如/張維庭/黃茹巧
國小教師檢定經驗分享 分享者:胡瑋婷 現職:國語日報語文中心寫作班教師 閱讀寫作營教材編輯及任課講師 榮獲「教育部教育實習績優獎」全國第三名.
民主政治的運作
教育與學習科技學系 103學年度課程說明 103年9月2日.
國有不動產撥、借用法令與實務 財政部國有財產局 接收保管組撥用科 蔡芳宜.
第1单元 操作系统概论 第一节 绪论 操作系统定义.
大學教、職員之法義務規範與法律效果 台南地檢署林仲斌.
第三課 政府的組織、功能與權限 一、內閣制 壹、民主國家的政府體制 二、總統制 三、混合制 四、小結 一、前言 貳、我國的中央政府體制
明代開國謀臣 劉伯溫 組員:吳政儒 林天財 王鈴秀 陳冠呈 施典均 李孟儒.
中國宦官 鄭永富 鄭雅之 莊尉慈.
第一章 C语言概述 计算机公共教学部.
香港普通話研習社科技創意小學 周順強老師.
簡報大綱 壹、親師溝通 貳、學生不當行為的處理 參、學生輔導 肆、個案研討分析.
操作系统原理 Principles of Operating System
评价是为了促进 学生发展的评价。. 评价是为了促进 学生发展的评价。 语言有温度,字词知冷暖.
102年紫錐花春暉反反毒宣導 高雄應用科技大學 黃淑玲教官.
貨物稅稅務法令介紹 竹東稽徵所.
九年一貫課程綱要微調 健康與體育領域召集人 「課綱微調轉化」研習
Chapter 6 時序.
基于操作系统的编程复习 张玉宏
運動休閒管理 期末報告 Major Sport Events and Long-Term Tourism Impacts 大型運動賽會對觀光的長期衝擊 學生:嚴偉誠 M99B0102 指導教授:柯伶玫 教授.
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
第8章 字元與字串處理 8-1 C語言的字元檢查函數 8-2 C語言的字串 8-3 字串的輸入與輸出 8-4 指標與字串
Compilers Flex & Bison 的安裝使用
中国科学技术大学计算机系 陈香兰(0512- ) Spring 2011
核心系统数据库组 余锋 了解内存 核心系统数据库组 余锋
学习目标 1、Linux(这里用的是Centos)下mysql5.7的基本安装 2、课后习题.
助教:胡光能,解定宝 编译原理讲师:戴新宇
陈香兰 助教:陈博、李春华 Spring 2009 嵌入式操作系统 陈香兰 助教:陈博、李春华 Spring 2009.
Function.
CH.8 硬體管理.
自然科教學觀摩 教 學 者:黃藍萩 教學班級:3年9班 教學日期:
Linux操作系统分析 中国科学技术大学计算机系 陈香兰(0512- )
按键驱动 广州创龙电子科技有限公司 Guangzhou Tronlong Electronic Technology Co., Ltd.
中国科学技术大学计算机系 陈香兰(0551- ) Spring 2009
第三节 整数类型.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C语言环境配置.
Oop8 function函式.
C標準輸出入函數庫 與 作業系統.
第二章 类型、对象、运算符和表达式.
本节内容 引用类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
LOGIX500软件入门 西安华光信息技术有限公司 2008年7月11日.
2017 Operating Systems 作業系統實習 助教:陳主恩、林欣穎 實驗室:720A Lab7.
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
挑戰C++程式語言 ──第9章 函數.
作業一: 安裝Linux於btrfs上 中正大學 作業系統實驗室 指導教授:羅習五
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
第6章 嵌入式软件开发基础.
PROGRAM 1 Simple E. Angel, Interactive Computer Graphics A Top-Down Approach with OpenGL, Third Edition Addison-Wesley Longman, 2003.
劉庠宏、林合治編著 國立高雄大學應用數學系 2005年3月1日
Presentation transcript:

褚霸 核心系统数据库组 chuba@taobao.com http://yufeng.info 2010/11/15 Oprofile 系统层面的性能微调工具 褚霸 核心系统数据库组 chuba@taobao.com http://yufeng.info 2010/11/15

用途及关键特性 非侵入式,无需重新编译系统. 整个系统层面的Profile, All code is profiled. 利用硬件计数器. OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead. 非侵入式,无需重新编译系统. 整个系统层面的Profile, All code is profiled. 利用硬件计数器. 低overhead.  

Oprofile系统工作流图

安装(RHEL5U4) 安装好的vmlinux在这里: Oprofile发行版内置的,无需安装,最新版本0.9.6 首先需要安装内核符号信息 rpm -i kernel-debuginfo-common-2.6.18-164.el5.x86_64.rpm rpm -i kernel-debuginfo-2.6.18-164.el5.x86_64.rpm 安装好的vmlinux在这里:  /usr/lib/debug/lib/modules/2.6.18-164.el5/vmlinux Oprofile发行版内置的,无需安装,最新版本0.9.6 文档: man oprofile 官方网站: http://oprofile.sourceforge.net/news/

确定观察什么 opcontrol --list-events Oprofile在Nehalem CPU上可以观测的事件列表: 设置事件:   设置事件: opcontrol --setup --event=name:count:unitmask:kernel:user --event=xxxx 常用的事件有以下几种: CPU_CLK_UNHALTED: CPU执行时间 LLC_MISSES:  末级Cache miss DTLB_MISSES: 数据TLB miss

准备我们的程序 我们的程序,包括内核驱动都需要有符号信息: 应用程序这样编译: gcc -g foo.c ... 查看内核的导出的符号信息:   应用程序这样编译: gcc -g foo.c ... 查看内核的导出的符号信息: cat /proc/kallsyms

初始化Oprofile # 加载oprofile内核模块 opcontrol --init #我们对内核的取样没兴趣 opcontrol --setup --no-vmlinux   #我们需要内核的取样 opcontrol --setup --vmlinux=/usr/lib/debug/lib/modules/2.6.18-164.el5/vmlinux

采样数据 #在开始收集采样数据前回顾下我们的设置 opcontrol --status #清除上一次采样到的数据 opcontrol --reset  #启动oprofiled守护程序,从内核中拉出采样数据 opcontrol --start    #运行我们的程序 ./foo  #中途收集采样数据 opcontrol --dump #关闭守护程序, 同时准备好采样的数据 opcontrol --shutdown

采样报告  #系统级别的 opreport --long-filenames #模块级别的 opreport image:foo -l #源码级别的 opannotate image:foo -s

最常用的命令 opcontrol --init opcontrol --setup --no-vmlinux opcontrol --status opcontrol --start opcontrol --dump opcontrol --shutdown opcontrol --reset  opreport --long-filenames  opreport image:filename -l  opannotate image:filename -s 

实例演示-代码(ex1.c) #include <string.h> const char* find_str(const char* s, int l){   const char* e = s+l;   while(s <e) {     if(*s == '<') return s;     s++;   } } int   main(int argc, char* argv[]) {   char*s = argv[1];   int   i, l;   if(argc ==1) return -1;   l=strlen(s);   for(i   =   0;   i <   100000000;   i++) find_str(s, l);   return   0; }

一步步来看下实际效果 opcontrol --setup -e CPU_CLK_UNHALTED:6000:0:0:1 opcontrol --status opcontrol --reset && opcontrol --start   time ./ex1 helloworld opcontrol --shutdown opannotate image:/home/wentong/ex1 -s

opreport --long-filenames  

opannotate image:/home/wentong/ex1 -s

参考 http://oprofile.sourceforge.net/examples/ http://people.redhat.com/wcohen/Oprofile.pdf

谢谢大家! Any question?