系统常见故障诊断参考_第1页
系统常见故障诊断参考_第2页
系统常见故障诊断参考_第3页
系统常见故障诊断参考_第4页
系统常见故障诊断参考_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

系统常见故障诊断参考提纲日志分析方法预备知识core分析性能问题诊断通用方法-了解被诊断系统什么语言开发的架构及工作原理日志及其它输出模块相互间接口及调用关系评估故障诊断方法可能对系统带来的影响通用方法-正视故障诊断的复杂性其实故障诊断是个模式匹配的过程首先确认这是个故障一定建立在多方收集的客观事实(现象、日志)基础上充分分析事实,不要轻易下结论忽略偶然现象,最好能够重现故障抓问题主要方面,特别是一段时间没有诊断和分析的系统,老问题会带来干扰通用方法-工具和方法利用好各种诊断工具询问法粗略了解,要分清事实和结论日志分析法利用思维导图,分析逻辑关系分段或分环境进行测试,并记录结果做比较敢于怀疑,但要找事实支持日志分析方法-实现统计功能awk(regex,function)grep(regex)sedsorttruniq跟踪系统和动态库函数调用:truss/tusc/strace<race查看系统日志:dmesg/errpt日志分析方法-实践统计所有进程占用多大内存在aix上,统计代码段有多大接上,统计有多少个不同的段接上,统计各个段的大小统计应用日志中,select语句的平均耗时,及耗时最大的5条sql跟踪一下系统调用自己来点?预备知识-动态链接库由来和原理优缺点加载PIC性能预备知识-多线程的概念预备知识-程序内存映像预备知识-AIX程序内存映像A32-bitapplicationprogramrunningonthesystemhasanaddressspacethatisdividedintothefollowingsegments: 0x00000000to0x0fffffffContainsthekernel. 0x10000000to0x1fffffffContainstheapplicationprogramtext. 0x20000000to0x2fffffffContainstheapplicationprogramdata,theprocessheap,andtheapplicationstack. 0x30000000to0xcfffffffAvailableforusebysharedmemoryormmapservices. 0xd0000000to0xdfffffffContainssharedlibrarytext. 0xe0000000to0xefffffffAvailableforusebysharedmemoryormmapservices. 0xf0000000to0xffffffffContainstheapplicationsharedlibrarydata.ProcessAddressSpacein64-bitApplicationsA64-bitapplicationprogramrunningonthesystemhasanaddressspacethatisdividedintothefollowingsegments: 0x0000000000000000to0x000000000fffffffContainsthekernel. 0x00000000f0000000to0x000000000fffffffReserved. 0x0000000100000000to0x07ffffffffffffffContainstheapplicationprogramtext,applicationprogramdata,theprocessheap,andsharedmemoryormmapservices. 0x0800000000000000to0x08ffffffffffffffPrivatelyloadedobjects. 0x0900000000000000to0x09ffffffffffffffSharedlibrarytextanddata. 0x0f00000000000000to0x0fffffffffffffffApplicationstack.Someitem:Size、ResData、ResText、ResSet预备知识-HP-UX程序内存映像32bitsapplications预备知识-HP-UX程序内存映像64bitsapplications预备知识-Solaris/sparc程序内存映像预备知识-JVM&J2EE预备知识-CORBA预备知识-TuxedoATMIcore分析-core的类型和原因SIGABRT(6):异常退出,通常程序发现了错误并调用abort,比如C++中没有处理的exceptionSIGBUS(7):内存访问时的硬件故障,通常是地址未对齐SIGFPE(8):浮点数异常,包括除0、溢出等SIGILL(4):不正确的指令,通常是指针越界导致的ip非法,栈溢出等SIGIOT(6):执行I/O自陷SIGQUIT(3):退出并产生coreSIGSEGV(11):错误的内存地址,通常是访问的地址空间不存在,或者没有读写权限core分析-core文件的备份AIX设置环境变量CORE_NAMING=yes,文件名形如每个用户的core设置在/etc/security/userSolaris利用coreadm命令,例如coreadm-icore.%f.%tHP-UX利用coreadm命令,例如coreadm-pcore.%f.%tLinux/proc/sys/kernel/core_pattern/proc/sys/kernel/core_uses_pid=1修改/etc/sysctl.conf,再sysctl-p或echo'core.%e.%p'>/proc/sys/kernel/core_patterncore分析-分析步骤查看core文件大小查看limit信息查看core进程的环境变量可先尝试pstack偶尔要收集系统核心参数使用调试工具(gdb/dbx/mdb)对照core时的日志编写验证程序core分析-我们应用的常见core不能分配更多的内存(除了limit、32位,还有OS特定的限制)栈溢出(栈空间不够,递归太深)abort,特别是c++的exception头文件和实现不一致使用了空指针指针越界/内存溢出多线程问题重复freecore分析-自己实践从前面的类型中自己选,编写程序验证和实践环境:86(AIX)username:lixp61(HP-UXIA64)username:lixp99(Solaris)username:lixpcore分析-案例1(AIX5.3,32Bits)iom@:/tuxedo/iom/aioss/bin>ls

-l

core-rw-r--r--

1

iom

aigrp

270562700

Dec

30

21:35

core

iom@:/tuxedo/iom/aioss/bin>dbx

unif_exec

coreType

'help'

for

help.[using

memory

image

in

core]Segmentation

fault

in

malloc_common.extend_brk

[/usr/lib/threads/libc.a]

at

0xd0355260

($t1)0xd0355260

(extend_brk+0x20c)

90040004

stw

r0,0x4(r4)(dbx)

(dbx)

wheremalloc_common.extend_brk(internal

error:

assertion

failed

at

line

3650

in

file

frame.c??,

internal

error:

assertion

failed

at

line

3650

in

file

frame.c??,

internal

error:

assertion

failed

at

line

3650

in

file

frame.c??)

at

0xd0355260(dbx)

core分析-案例2(Solaris10,32bits)current

thread:

t@26=>[1]

__lwp_kill(0x0,

0x6,

0x0,

0x6,

0xffbffeff,

0x0),

at

0xed34d6ac

[2]

raise(0x6,

0x0,

0xed3b5010,

0xed32cd88,

0xffffffff,

0x6),

at

0xed2e69ac

[3]

abort(0x0,

0x1,

0xefb9403c,

0xee4cc,

0xed3b34d8,

0x0),

at

0xed2c2010

[4]

free(0x6fabf0,

0x709b48,

0x0,

0x80,

0x6a,

0x80000000),

at

0xefb80b00

[5]

operator

delete(0x709b48,

0x1aaedf0,

0x1aaedfc,

0xc,

0x14e98,

0xec0ec2fc),

at

0xef95631c

[6]

std::allocator<char>::deallocate(0xea0f4f7a,

0x709b48,

0x8,

0x4f,

0x1aaeb20,

0x0),

at

0xede9ab90

[7]

std::allocator_interface<std::allocator<char>,char>::deallocate(0xea0f4f7a,

0x709b48,

0x8,

0xea0f5334,

0x7ffffc00,

0xe),

at

0xede9a678

[8]

std::basic_string<char,std::char_traits<char>,std::allocator<char>

>::__unLink(0x1aaedf0,

0xea0f5358,

0x1a9ca28,

0x87a100,

0x1a78fc8,

0x8),

at

0xede96d00

[9]

std::basic_string<char,std::char_traits<char>,std::allocator<char>

>::~basic_string(0x1aaedf0,

0x1aaedde,

0x0,

0xffffffff,

0x4f,

0x4f),

at

0xede96050

[10]

SObdCallInfo::~SObdCallInfo(0x1aaedf0,

0x0,

0x0,

0x1aaedd0,

0x0,

0x0),

at

0xede9bbc0

…………

[28]

VISThread::_start(0x10506c8,

0xea0f6000,

0x0,

0x0,

0xef8399b8,

0x1),

at

0xef8399e0

core分析-案例320110901贵州账务资料MDBcore问题性能问题诊断-常见性能问题CPU瓶颈:锁问题、线程切换、逻辑问题内存瓶颈:换页、缓存过大、逻辑问题网络瓶颈:网卡、中断、cpu绑定I/O瓶颈:底层问题、目录操作量大数据库瓶颈:大数据量、索引、锁……性能问题诊断-一般分析过程CPU瓶颈?内存瓶颈?I/O瓶颈?网络瓶颈?vmstatpslspssvmonvmstatsarnicepsiostatlslvfilemonfileplaceMoretestnetstatnfsstatnfsonoifconfignetpmonYYYYNNNN性能问题诊断-关键点关键点1:应用对资源的性能/容量要求是什么?有没有超过?关键点2:有没有做过基准测试?关键点3:平时有没有收集性能数据?性能问题诊断-必读书籍AIX通用编程概念:编写并调试程序.pdf性能管理.pdf网络与通信管理.pdfHP-UXcaliper_user_guide.pdfhp-uxlinkerandlibrariesuserguideforhp-ux11.0.pdfJavaTroubleshootingGuideforHP-UXSystems.pdfTunableKernelParameters-HP-UXRelease11iVersion1.6.pdfSolarisSolaris10-Performance-AnalysisusingDynamicTracing(DTrace).pdfS10DeepDive_Performance.pdfDTraceUserGuide.pdfLinkerandLibrariesGuide.pdfMultithreadedProgrammingGuide.pdf性能问题诊断-AIX工具性能问题诊断-HP-UX工具性能问题诊断-Solaris工具性能问题诊断-vmstat这个工具可以让我们看到很多性能问题!性能问题诊断-contextswitch资料来源:CandC++ApplicationdevelopmentonAIX.pdf,P115性能问题诊断-iostatAIXHP-UXSolaris性能问题诊断-tcpdumptcpdump[-adeflnNOpqStvx][-c数量][-F文件名]

[-i网络接口][-r文件名][-ssnaplen]

[-T类型][-w文件名][表达式](1)想要截获所有的主机收到的和发出的所有的数据包:

#tcpdumphost(2)想要截获主机和主机或的通信,使用命令:(在命令行中适用括号时,一定要

#tcpdumphostand\(or\)(3)如果想要获取主机除了和主机之外所有主机通信的ip包,使用命令:

(4)如果想要获取主机接收或发出的telnet包,使用如下命令:

进程和端口的关系:pfiles、lsof、truss网卡和ip的关系:ifconfig性能问题诊断-netperf长连接:netperf-tTCP_RR-H20---r6464短连接:netperf-tTCP_CRR-H20其它选项:-c-C-j性能问题诊断-AIX64bitscout0x09000000004922e0_global_lock_common(??,??,??)+0x40c0x09000000000650f0_rec_mutex_lock(??)+0x17c0x0900000000431c5cstd::_Lock::_Wait()(??)+0x2c0x0900000000431bdcstd::_Lockit::_Lockit(int)(??,??)+0x1c0x0900000000431b7cstd::_Lockit::_Lockit(int)(??,??)+0x2c0x09000000057eb110std::basic_ostream<char,std::char_traits<char>>::sentry::sentry(std::basic_ostream<char,std::char_traits<char>>&)(0x144a443a0,0x9001000a01dd780)+0x480x09000000057e5d10std::basic_ostream<char,std::char_traits<char>>&std::operator<<<char,std::char_traits<char>,std::allocator<char>>(std::basic_ostream<char,std::char_traits<char>>&,conststd::basic_string<char,std::char_traits<char>,std::allocator<char>>&)(0x9001000a01dd780,0x144a44580)+0x10c…………0x09000000057e5784COstreamVisitor::visit(constCObdBasicListObject&,bool)(0x144a44a20,0x144a44d18,0x0)+0x3c0x09000000057e90fcoperator<<(std::basic_ostream<char,std::char_traits<char>>&,constCObdBasicListObject&)(0x9001000a01dd780,0x144a44d18)+0x6c0x090000001a8fccf0app_app_wyintf_app_busi4webfuncintf::MBusi4webFuncIntfApp::CIBusi4webFuncIntfImp::

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论