系统常见故障诊断参考

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

提纲•通用方法•日志分析方法•预备知识•core分析•性能问题诊断通用方法-了解被诊断系统•什么语言开发的•架构及工作原理•日志及其它输出•模块相互间接口及调用关系•评估故障诊断方法可能对系统带来的影响通用方法-正视故障诊断的复杂性•其实故障诊断是个模式匹配的过程•首先确认这是个故障•一定建立在多方收集的客观事实(现象、日志)基础上•充分分析事实,不要轻易下结论•忽略偶然现象,最好能够重现故障•抓问题主要方面,特别是一段时间没有诊断和分析的系统,老问题会带来干扰通用方法-工具和方法•利用好各种诊断工具•询问法粗略了解,要分清事实和结论•日志分析法•利用思维导图,分析逻辑关系•分段或分环境进行测试,并记录结果做比较•敢于怀疑,但要找事实支持日志分析方法-实现统计功能•awk(regex,function)•grep(regex)•sed•sort•tr•uniq•跟踪系统和动态库函数调用: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++中没有处理的exception•SIGBUS(7):内存访问时的硬件故障,通常是地址未对齐•SIGFPE(8):浮点数异常,包括除0、溢出等•SIGILL(4):不正确的指令,通常是指针越界导致的ip非法,栈溢出等•SIGIOT(6):执行I/O自陷•SIGQUIT(3):退出并产生core•SIGSEGV(11):错误的内存地址,通常是访问的地址空间不存在,或者没有读写权限core分析-core文件的备份•AIX–设置环境变量CORE_NAMING=yes,文件名形如core.pid.ddhhmmss–每个用户的core设置在/etc/security/user•Solaris–利用coreadm命令,例如coreadm-icore.%f.%t•HP-UX–利用coreadm命令,例如coreadm-pcore.%f.%t•Linux–/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分析-自己实践从前面的类型中自己选,编写程序验证和实践环境:10.10.10.186(AIX)username:lixp10.10.12.161(HP-UXIA64)username:lixp10.10.10.199(Solaris)username:lixpcore分析-案例1(AIX5.3,32Bits)iom@:/tuxedo/iom/aioss/binls-lcore-rw-r--r--1iomaigrp270562700Dec3021:35coreiom@:/tuxedo/iom/aioss/bindbxunif_execcoreType'help'forhelp.[usingmemoryimageincore]Segmentationfaultinmalloc_common.extend_brk[/usr/lib/threads/libc.a]at0xd0355260($t1)0xd0355260(extend_brk+0x20c)90040004stwr0,0x4(r4)(dbx)(dbx)wheremalloc_common.extend_brk(internalerror:assertionfailedatline3650infileframe.c??,internalerror:assertionfailedatline3650infileframe.c??,internalerror:assertionfailedatline3650infileframe.c??)at0xd0355260(dbx)core分析-案例2(Solaris10,32bits)currentthread:t@26=[1]__lwp_kill(0x0,0x6,0x0,0x6,0xffbffeff,0x0),at0xed34d6ac[2]raise(0x6,0x0,0xed3b5010,0xed32cd88,0xffffffff,0x6),at0xed2e69ac[3]abort(0x0,0x1,0xefb9403c,0xee4cc,0xed3b34d8,0x0),at0xed2c2010[4]free(0x6fabf0,0x709b48,0x0,0x80,0x6a,0x80000000),at0xefb80b00[5]operatordelete(0x709b48,0x1aaedf0,0x1aaedfc,0xc,0x14e98,0xec0ec2fc),at0xef95631c[6]std::allocatorchar::deallocate(0xea0f4f7a,0x709b48,0x8,0x4f,0x1aaeb20,0x0),at0xede9ab90[7]std::allocator_interfacestd::allocatorchar,char::deallocate(0xea0f4f7a,0x709b48,0x8,0xea0f5334,0x7ffffc00,0xe),at0xede9a678[8]std::basic_stringchar,std::char_traitschar,std::allocatorchar::__unLink(0x1aaedf0,0xea0f5358,0x1a9ca28,0x87a100,0x1a78fc8,0x8),at0xede96d00[9]std::basic_stringchar,std::char_traitschar,std::allocatorchar::~basic_string(0x1aaedf0,0x1aaedde,0x0,0xffffffff,0x4f,0x4f),at0xede96050[10]SObdCallInfo::~SObdCallInfo(0x1aaedf0,0x0,0x0,0x1aaedd0,0x0,0x0),at0xede9bbc0…………[28]VISThread::_start(0x10506c8,0xea0f6000,0x0,0x0,0xef8399b8,0x1),at0xef8399e0core分析-案例3•20110901贵州账务资料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.pdfSolar

1 / 41
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功