OProfile分析服务的瓶颈和CPU100%问题的利器
来源:互联网 发布:鲨鱼记账怎么导出数据 编辑:程序博客网 时间:2024/05/16 00:43
OProfile是一个非常好的工具,在Linux下分析一个软件或者服务的系统消耗和占用,进而辅助我们找到系统的瓶颈。例如,我们开启Oprofile在redis服务中,然后找到结果中redis耗时最多的几个函数,然后去了解这些函数是用在了什么地方,是否可以优化或者避免。
Oprofile的安装流程网上很多,就不写了哈。我写了一个方面测试的shell脚本,在安装好Oprofile后,可以很方便地用来测试这些系统服务。
简单的用法是:
shell的脚本代码如下:
系统如果支持time interrupt的话,执行命令
否则的话,直接追加:
我使用上述脚本来分析过一次Nginx的执行结果(通过http_load工具来跑nginx的压力测试):
我们也曾经遇到过Web服务器莫名其妙CPU100%的奇怪问题,也是通过oprofile分析后才发现一些可疑的函数库调用,反过来分析代码,找到问题原因。
下面这个图片,就是发现libxml大量占用CPU,让我们发现代码中解析xml的相关代码使用不当导致的。
Oprofile的安装流程网上很多,就不写了哈。我写了一个方面测试的shell脚本,在安装好Oprofile后,可以很方便地用来测试这些系统服务。
简单的用法是:
oprofile.sh "php test.php"当然,也可以只做sleep,不执行具体命令。直接休眠100s,抓取系统执行中的各种系统消耗。
oprofile.sh "sleep 100"
shell的脚本代码如下:
#部分系统不支持time interrupt,会导致抓不到数据,可使用modprobe oprofile timer=1#查看状态:dmesg|grep oprofile,会追加多一行#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage: oprofile.sh command"
echo 'Example: /root/oprofile/oprofile.sh "php test.php"'
exit 2;
fi
echo `date -d "today" +%Y%m%d%H%M%S`
opcontrol --start --no-vmlinux
opcontrol --reset
$1
opcontrol --dump
opreport -l
opcontrol --stop
opcontrol --shutdown
dmesg|grep oprofile
否则的话,直接追加:
modprobe oprofile timer=1
我使用上述脚本来分析过一次Nginx的执行结果(通过http_load工具来跑nginx的压力测试):
我们也曾经遇到过Web服务器莫名其妙CPU100%的奇怪问题,也是通过oprofile分析后才发现一些可疑的函数库调用,反过来分析代码,找到问题原因。
下面这个图片,就是发现libxml大量占用CPU,让我们发现代码中解析xml的相关代码使用不当导致的。
0 0
- OProfile分析服务的瓶颈和CPU100%问题的利器
- OProfile分析服务的瓶颈和CPU100%问题的利器
- 使用oprofile分析性能瓶颈
- 使用oprofile分析性能瓶颈
- 使用oprofile分析性能瓶颈
- 使用oprofile分析性能瓶颈
- 使用oprofile分析性能瓶颈
- 使用oprofile分析性能瓶颈
- 使用oprofile分析性能瓶颈
- Java进程CPU100%的问题
- jvm cpu100% 问题分析
- Android 使用Oprofile分析结果系统瓶颈
- Android 使用Oprofile分析结果系统瓶颈
- 使用Oprofile分析性能瓶颈--简单例子
- gprof && oprofile 分析linux程序性能瓶颈
- 关于iexplore.exe占用CPU100%的问题
- sar 找出系统瓶颈的利器
- sar 找出系统瓶颈的利器
- Processing 高效控制管理图形方法(一)
- Web系统大规模并发——电商秒杀与抢购
- PHP7和HHVM的性能之争介绍
- Apache的三种MPM模式比较:prefork,worker,event
- POJ 3258
- OProfile分析服务的瓶颈和CPU100%问题的利器
- Nginx的TCP负载均衡介绍
- IntelliJ IDEA 2016激活码
- 高并发Web服务的演变——节约系统内存和CPU
- PHP7标量类型声明RFC[翻译]
- 数组
- HTTP/2:让Web服务更快[翻译]
- PHP接入Protocol Buffer并且实现TCP的二进制流传输
- this关键字