SlideShare a Scribd company logo
Linux性能分析工具二
丁静 dingjingdjdj@gmail.com
*  使用率	
在⼀定时间间隔内,忙于处理请求的线程平均数目	
*  饱和度	
在⼀定时间间隔内,请求队列的平均长度	
*  错误	
处于某种原因,请求拒绝或者失败	
dmesg		|	tail	
USE-性能分析方法
确定性能路径
tcpdump	wireshark ⽹络分析	
	
包时间点,应用层日志	
	
丢包分析,⽹络错误	
	
tcp	window 滑动窗⼝	
	
nagle 算法, delay		ack
*  减少不必要的⼯作,减少CPU使用	
*  使用缓存,空间换时间,减少计算逻辑,LRU算法	
*  CPU密集型的考虑简单有效的算法,结合CPU特性,
分⽀支预测,局部性等	
*  优化执⾏最频繁的代码路径	
*  减少复杂数据结构的使用,频繁使用的情况下,结
合业务场景,创造新轮⼦	
CPU优化准则
*  使用perf⽣成⽕焰图,分析热点路径	
*  确定热点路径耗时情况,耗时波动,执⾏次数	
*  耗时长的堆栈路径,输⼊参数	
*  系统调用分析	
CPU优化步骤
*  sudo	perf	sched	record		-a	sleep	2	
*  sudo	perf	sched	latency	-s	avg	
*  sudo	perf	sched	latency	–s	max	
*  sudo	perf	sched	script
CPU调度分析
*  sudo	perf	record	-F	99	-p	10805	-a	--call-graph	dwarf			
sleep	5	
*  sudo	perf		script		|	./stackcollapse-perf.pl	>	out.perf-
folded	
*  ./flamegraph.pl	out.perf-folded	>	dnd.svg
CPU性能分析
*  sudo	stap	-v	-L	'process("/mnt/engine/fingerprint-y/
fingerprint-y/bin/dnd").function("Register")’	
*  	sudo	stap	-v	histogram-user-time.stp	'process("/mnt/
engine/fingerprint-y/fingerprint-y/bin/
dnd").function("Register@/data/home/liaotianyi/
workspace/git/fingerprint-y/dnd/src/DndHandler.cc")'	
5
获取函数时间分布
*  sudo	stap	-v	histogram-user-times.stp	'process("/mnt/
engine/smart-list/smart-list/bin/smart-
list-9090").function("Compare@/mnt/home/compile/
makepkg/arch/be-smart-list/src/engine/*")'	10
获取函数时间分布
*  	sudo	stap	-v	user-stack-time.stp				'process("/mnt/
engine/smart-list/smart-list/bin/smart-
list-9090").function("NormalizeText@/mnt/home/
compile/makepkg/arch/be-smart-list/src/engine/smart-
list-base.cc")'	1000	
*  使用c++filt	
_ZN10smart_list13SmartListBase13NormalizeTextERK
SsPSt6vectorImSaImEE
打印耗时堆栈信息
*  sudo	stap	-v	-x	27001		count-user-kernel.stp	
*  可能需要循环执⾏,找出可能的系统调用,再分析
具体的系统调用	
找出进程系统调用
*  sudo	stap	-v	-e	'	probe	process("/opt/lib/
libhiredis.so").function("redisGetReply")
{print_ubacktrace();}’	
*  sudo	stap	-v	histogram-user-time.stp		'process("/opt/
lib/libhiredis.so").function("redisGetReply")'		5
分析第三方库函数
*  代码热点路径	
*  函数耗时时间,执⾏次数统计	
*  函数堆栈信息,函数的参数跟踪,函数本地变量量	
*  进程的系统调⽤用分析	
*  第三⽅方库函数分析	
提供的分析能力
*  脚本代码:
git@code.aliyun.com:arch/systemtap-script.git	
*  System-tap:	
https://sourceware.org/systemtap/documentation.html
参考

More Related Content

What's hot

聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理
rfyiamcool
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
jinqing zhu
 
线上问题排查交流
线上问题排查交流线上问题排查交流
线上问题排查交流
简放 视野
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
Kenny (netman)
 
Tcpcopy 阿里技术沙龙
Tcpcopy 阿里技术沙龙Tcpcopy 阿里技术沙龙
Tcpcopy 阿里技术沙龙drewz lin
 
PHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits LevelPHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits Level
Ho Kim
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换
mysqlops
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案Louis liu
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)ykdsg
 
Kafka的设计与实现
Kafka的设计与实现Kafka的设计与实现
Kafka的设计与实现
wang xing
 
Linux Network Monitoring
Linux Network MonitoringLinux Network Monitoring
Linux Network Monitoring
Kenny (netman)
 
高可用
高可用高可用
高可用
chosen0ne
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.toleone
 
Gdb principle
Gdb principleGdb principle
Gdb principle
libfetion
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
Kris Mok
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast share
rfyiamcool
 
Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查
bluedavy lin
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
MongoDB
 

What's hot (20)

聊聊我接触的集群管理
聊聊我接触的集群管理聊聊我接触的集群管理
聊聊我接触的集群管理
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
 
线上问题排查交流
线上问题排查交流线上问题排查交流
线上问题排查交流
 
Linux network monitoring hands-on pratice
Linux network monitoring hands-on praticeLinux network monitoring hands-on pratice
Linux network monitoring hands-on pratice
 
Tcpcopy 阿里技术沙龙
Tcpcopy 阿里技术沙龙Tcpcopy 阿里技术沙龙
Tcpcopy 阿里技术沙龙
 
PHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits LevelPHP Optimization for Millions Visits Level
PHP Optimization for Millions Visits Level
 
淘宝主备数据库自动切换
淘宝主备数据库自动切换淘宝主备数据库自动切换
淘宝主备数据库自动切换
 
基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案基于MHA的MySQL高可用方案
基于MHA的MySQL高可用方案
 
Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)Java线上应用问题排查方法和工具(空望)
Java线上应用问题排查方法和工具(空望)
 
Kafka的设计与实现
Kafka的设计与实现Kafka的设计与实现
Kafka的设计与实现
 
2009/07/07 meeting
2009/07/07 meeting2009/07/07 meeting
2009/07/07 meeting
 
Linux Network Monitoring
Linux Network MonitoringLinux Network Monitoring
Linux Network Monitoring
 
高可用
高可用高可用
高可用
 
深入浅出Netty l.t
深入浅出Netty   l.t深入浅出Netty   l.t
深入浅出Netty l.t
 
Gdb principle
Gdb principleGdb principle
Gdb principle
 
Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)Java Crash分析(2012-05-10)
Java Crash分析(2012-05-10)
 
Mysql fast share
Mysql fast shareMysql fast share
Mysql fast share
 
Java常见问题排查
Java常见问题排查Java常见问题排查
Java常见问题排查
 
Oracle dgha
Oracle dghaOracle dgha
Oracle dgha
 
MongoDB at Qihoo 360
MongoDB at Qihoo 360MongoDB at Qihoo 360
MongoDB at Qihoo 360
 

Similar to Linux performance analysis cpu

服务器端性能优化
服务器端性能优化服务器端性能优化
服务器端性能优化ZhiYong Wei
 
IBM Cloud Private Introduction
IBM Cloud Private IntroductionIBM Cloud Private Introduction
IBM Cloud Private Introduction
Guangya Liu
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
frogd
 
Linux performance network analysis
Linux performance network analysisLinux performance network analysis
Linux performance network analysis
静 丁
 
Spark性能调优分享
Spark性能调优分享Spark性能调优分享
Spark性能调优分享
Wenchun Xu
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践zhliji2
 
MPTCP学习
MPTCP学习MPTCP学习
MPTCP学习
hubugui
 
MySQL运维那些事
MySQL运维那些事 MySQL运维那些事
MySQL运维那些事
Leo Zhou
 
分布式文件实践经验交流
分布式文件实践经验交流分布式文件实践经验交流
分布式文件实践经验交流凯 李
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
Jinrong Ye
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysqlpwesh
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江thinkinlamp
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOpenSourceCamp
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,DbaCevin Cheung
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum锐 张
 
Tcpdump的使用简介
Tcpdump的使用简介Tcpdump的使用简介
Tcpdump的使用简介
lifeibo
 
了解集群
了解集群了解集群
了解集群
Feng Yu
 
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
HanLing Shen
 
实时消息推送系统
实时消息推送系统实时消息推送系统
实时消息推送系统Yi Feng Yang
 

Similar to Linux performance analysis cpu (20)

服务器端性能优化
服务器端性能优化服务器端性能优化
服务器端性能优化
 
IBM Cloud Private Introduction
IBM Cloud Private IntroductionIBM Cloud Private Introduction
IBM Cloud Private Introduction
 
硬件体系架构浅析
硬件体系架构浅析硬件体系架构浅析
硬件体系架构浅析
 
Linux performance network analysis
Linux performance network analysisLinux performance network analysis
Linux performance network analysis
 
Spark性能调优分享
Spark性能调优分享Spark性能调优分享
Spark性能调优分享
 
Lamp优化实践
Lamp优化实践Lamp优化实践
Lamp优化实践
 
MPTCP学习
MPTCP学习MPTCP学习
MPTCP学习
 
Metrics
MetricsMetrics
Metrics
 
MySQL运维那些事
MySQL运维那些事 MySQL运维那些事
MySQL运维那些事
 
分布式文件实践经验交流
分布式文件实践经验交流分布式文件实践经验交流
分布式文件实践经验交流
 
服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130服务器基准测试-叶金荣@CYOU-20121130
服务器基准测试-叶金荣@CYOU-20121130
 
2011 06-12-lamp-mysql
2011 06-12-lamp-mysql2011 06-12-lamp-mysql
2011 06-12-lamp-mysql
 
2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江2011 06-12-lamp-mysql-顾春江
2011 06-12-lamp-mysql-顾春江
 
Osc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresqlOsc scott linux下的数据库优化for_postgresql
Osc scott linux下的数据库优化for_postgresql
 
海量日志分析系统实践,Dba
海量日志分析系统实践,Dba海量日志分析系统实践,Dba
海量日志分析系统实践,Dba
 
新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum新时代的分析型云数据库 Greenplum
新时代的分析型云数据库 Greenplum
 
Tcpdump的使用简介
Tcpdump的使用简介Tcpdump的使用简介
Tcpdump的使用简介
 
了解集群
了解集群了解集群
了解集群
 
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
SRE 讀書會 Round 4 #37 - DNS 時快時慢,我該怎麼辦
 
实时消息推送系统
实时消息推送系统实时消息推送系统
实时消息推送系统
 

Linux performance analysis cpu