一次现场故障处理的总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一次实际现场故障处理的总结
2011年7月27日,北京西便门邮政一台安装红旗DC5sp4的服务器在早上运行时ORACLE报错,不能读一个表,导致ORACLE不能正常运行,然后直接影响这台服务器的正常运行。其管理员查看系统内存占用过大,要求红旗公司派下现场给予处理。
经我们现场检查,发现其ORACLE运行时内存共占用54GB左右,而其总的物理内存
为64GB。然而待服务器重启后,还未启动ORACLE,内存就被ORACLE用户的进程占用了49GB左右。现场初步判断应该是ORACLE配置的问题。建议让ORACLE公司派人来检查一下问题。我们同时收集了该服务器运行信息回公司分析。第二天给予明确回复。
28日,对昨天下现场工作进行分析总结。
通过这第一次下现场,从中学到不少实用技巧,发现售后服务工作需要有比较全面的
知识和技术,才能对故障现象进行深入准确地分析,发现问题,并提出解决或建议方案。
首先,检查系统运行状态主要用到的命令有如下四个:
一、ps命令
ps-ef&&显示所有进程,并用ASCII字符显示树状结构,表达程序间的
相互关系。ps-ef|wc-l&&统计当前共有多少个进程在运行。
ps-ef|grep oracle&&查看与oracle有关的所有进程信息。
具体命令解释如下:
1)ps a显示现行终端机下的所有程序,包括其他用户的程序。
2)ps-A显示所有程序。
3)ps c列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服
务的标示。
4)ps-e此参数的效果和指定?参数相同。
5)ps e列出程序时,显示每个程序所使用的环境变量。
6)ps f用ASCII字符显示树状结构,表达程序间的相互关系。
7)ps-H显示树状结构,表示程序间的相互关系。
8)ps-N显示所有的程序,除了执行ps指令终端机下的程序之外。
9)ps s采用程序信号的格式显示程序状况。
10)ps S列出程序时,包括已中断的子程序资料。
11)ps-t<终端机编号>
指定终端机编号,并列出属于该终端机的程序的状况。
12)ps u
以用户为主的格式来显示程序状况。
13)ps x
显示所有程序,不以终端机来区分。
最常用的方法是ps-aux,然后再利用一个管道符号导向到grep去查找特定的进程,然
后再对特定的进程进行操作。
lsof二、.
lsof|grep oracle&&查看被打开的与ORACLE有关的文件情况。
lsof全名list opened files,也就是列举系统中已经被打开的文件。我们都知道,linux
环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的linux管理非常有帮助。以下的说明,大部分内容来自lsof的manual文档。我所做的只是在中文翻译的基础上,进行简单的分类说明,并列举最常用的参数。
(一)输出说明
lsof是linux最常用的命令之一,通常的输出格式为:
引用
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
常见包括如下几个字段:更多的可见manual。
1、COMMAND
默认以9个字符长度显示的命令名称。可使用+c参数指定显示的宽度,若+c后跟的参数为零,则显示命令的全名
2、PID:进程的ID号
3、PPID
父进程的IP号,默认不显示,当使用-R参数可打开。
4、PGID
进程组的ID编号,默认也不会显示,当使用-g参数时可打开。
5、USER
命令的执行UID或系统中登陆的用户名称。默认显示为用户名,当使用-l参数时,可
显示UID。
6、FD
是文件的File Descriptor number,或者如下的内容:
(这里很难翻译对应的意思,保留英文)
7、TYPE
引用
IPv4IPv4的包;
IPv6使用IPv6格式的包,即使地址是IPv4的,也会显示为IPv6,而映射到IPv6的地址;
DIR目录
LINK链接文件
详情请看manual中更多的注释。
8、DEVICE
使用character special、block special表示的设备号
9、SIZE
文件的大小,如果不能用大小表示的,会留空。使用-s参数控制。
10、NODE
本地文件的node码,或者协议,如TCP等
11、NAME
挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状
态等
(二)参数.
1、不带额外参数运行
lsof path/filename
显示已打开该目录或文件的所有进程信息
lsof`which httpd`
显示指定命令的信息
2、参见参数
-c w显示以w开头命令的已打开文件的信息
lsof-c sshd
-p PID显示指定PID已打开文件的信息
lsof-p4401
+d dir依照文件夹dir来搜寻,但不会打开子目录
lsof+d/root
+D dir打开dir文件夹以及其子目录搜寻
lsof+D/root/
-d s以FD列的信息进行匹配,可使用3-10,表示范围,3,10表示某些值
lsof-d3-10
-u显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)
lsof-u root
lsof-u0
◎可配合正规表达式使用
表示不包括root用户的信息:
lsof-u^root
-i监听指定的协议、端口、主机等的网络信息,格式为:
引用
[46][proto][@host|addr][:svc_list|port_list]
例如:
lsof-i tcp@192.168.228.244为防备电子邮件地址收集器,这个E-mail地址被隐藏,你的浏览器必须支持Javascript才可看到这个邮件地址
lsof-i:22
还可以使用一些参数控制显示结果:
引用
-l禁止将userID转换为登陆名称,即显示UID
-n禁止将IP地址转换为hostname主机文件
-P不显示端口名称
-g s从PGID列进行匹配
lsof-g3-10
3、其他参数
+f所有路径参数都必须是文件系统,否则不能执行
-f所有路径参数都将作为普通的文件,例如:-f--?中的/,只会匹配单个/路径,而不会是根目录中的所有文件
+f和-f后都应加上“--”表终结符:
lsof-f--/