如何通过solaris自带的命令,迅速定位模块问题
来源:互联网 发布:java爬虫代理ip池 编辑:程序博客网 时间:2024/05/10 04:35
作者: uNDeaD
Email: someonebw@gmail.com
Blog: http://blog.csdn.net/undead
转载请注明出处
异常情况:
湖北移动 168 的机器发型异常情况,就是 Bwisp ,主容器的进程 CPU 占有率一直保持在 50 %,
高居不下,和其他省份的主容器 CPU 占用保持在 1 %,相差了近 50 倍,遂进一步来查明原因
1. 监控系统,发现问题
通过系统自带的监控系统资源占用命令: prstat
执行结果:(此图 bwisp 主容器进程正常)
2.查看是此进程的哪个线程导致,通过命令 prstat 的微观模式来查看此进程的情况,出问题的时候,此进程的 PID 为 22376 ,执行命令: prstat -mL –p 22376 2 ,执行结果如图:
3. 可以看到此进程中,的第 37 线程,占用情况达到了 93 %,很可能有问题,不正常!
通过系统命令 pstack 命令,来看看此进程中, 37 线程,调用的具体函数
执行命令: pstack 22376 ,执行结果如下:(列出关键部分)
---------------------------------------------------------
----------------- lwp# 37 / thread# 37 --------------------
fee45c98 __time (faffbf74, 1, 0, fc6b8, 0, fb072ec4) + 8
fb054354 _Z13checkAndWritePv (0, 0, 0, 2, fb0542d4, fb05b738) + 80
fee457f8 _lwp_start (0, 0, 0, 0, 0, 0)
---------------------------------------------------------
大家可以看到,标红的地方,就是 37 线程当前调用的函数,标记黄色的地方,就是出问题的函数调用,下一步,我们需要此处内存,具体分配给了哪个插件使用!
通过系统的 pmap 命令,得到系统的内存分配映射情况,执行命令: pmap -x -s 22376
得到如下结果:
通过上一步我们可以判断,出问题的地方为:
fb054354 _Z13checkAndWritePv (0, 0, 0, 2, fb0542d4, fb05b738) + 80
系统分配的为 fb05 开头的内存空间,
可以看到 pmap 后,标红的地方为:
FB030000 72 72 - - 8K r-x-- libywdata.so
FB042000 8 8 - - - r-x-- libywdata.so
FB044000 8 8 - - 8K r-x-- libywdata.so
FB046000 8 8 - - - r-x-- libywdata.so
FB048000 80 80 - - 8K r-x-- libywdata.so
FB06A000 16 16 16 - 8K rwx-- libywdata.so
FB06E000 16 8 - - - rwx-- libywdata.so
FB072000 8 8 8 - 8K rwx-- libywdata.so
FB03 - FB07 的空间,都分配给了 libywdata.so 插件, FB05 在其之间,可以判断
出问题的插件,应该就是 libywdata.so 文件了!
将相应的命令执行后的情况,发给相关开发人员后,开发人员迅速定位问题的所在,此 BUG 迅速解决!
- 如何通过solaris自带的命令,迅速定位模块问题
- ios自带地图首次定位问题
- 配置solaris 10有自带的vncserver服务
- 根据mips寄存器的用途迅速定位问题
- iOS自带的GPS 定位
- 定位用系统自带的
- iOS自带定位
- 系统自带定位
- node.js 自带的各种模块
- Django自带加密模块的使用
- UE4 自带的一些模块
- 通过windows自带的命令查看笔记本电脑的电池状态
- 通过电脑自带的cmd和Dos命令设置电脑自动关机以及取消自动关机
- 通过java自带的工具和linux命令来分析死锁
- 如何利用charles迅速定位bug
- 关于python中py的名字不能跟自带模块重名的问题
- 通过Windows命令启动Android Studio自带模拟器
- solaris自带snoop抓包工具
- oracle创建表空间
- CentOS5 搭建并配置SVN服务器(X86)
- Windows 到 Linux 之旅: 第 8 部分. 备份与恢复
- Windows程序的运行原理基础
- C++中的条件编译【C++晓习笔记】
- 如何通过solaris自带的命令,迅速定位模块问题
- Linux下MeeGo源码下载 — repo+git
- SAP 中的popup dialog (弹出对话框)
- android:layout_gravity 和 android:gravity 的区别
- Linux如何将只读分区重新mount可读写分区
- 解决:数据类型 text 和 varchar 在 equal to 运算符中不兼容
- 42000 (911): [DataDirect][ODBC Oracle driver][Oracle]ORA-00911: invalid character 解决方法
- Join用法,HQL的方法,Hibernate中的fetch
- PV操作