性能问题:
最近,P570数据库上的数据库性能急剧下降,报表统计跑将近24个小时才能完成,严重影响白天正常的业务,给主机带来比较大的性能负担。
检查过程(主要在P570上操作):
1、使用topas查看一下操作系统的load情况。结果没想到topas无法运行了,得到的结果如下,根本无法刷新数据。
Topas Monitor for host: jsdxh_db01 EVENTS/QUEUES FILE/TTY
Thu Oct 25 13:58:32 2007 Interval: 2 Cswitch Readch
Syscall Writech
Kernel | | Reads Rawin
User | | Writes Ttyout
Wait | | Forks Igets
Idle | | Execs Namei
Runqueue Dirblk
Network KBPS I-Pack O-Pack KB-In KB-Out Waitqueue
PAGING MEMORY
Faults Real,MB
Steals % Comp
Disk Busy% KBPS TPS KB-Read KB-Writ PgspIn % Noncomp
PgspOut % Client
PageIn
PageOut PAGING SPACE
Sios Size,MB
% Used
NFS (calls/sec) % Free
ServerV2
ClientV2 Press:
ServerV3 "h" for help
ClientV3 "q" to quit
2、安装nmon_aix53(操作系统为5.3),结果nmon_aix53运行也报错。
#./nmon_aix53
ERROR: Assert Failure in file="nmon11.c" in function="main" at line=3239
ERROR: Reason=NULL pointer
ERROR: Expression=[[q->procs = MALLOC(sizeof(struct procentry64 ) * n )]]
ERROR: errno=12
ERROR: errno means : Not enough space
3、检查进程情况
#ps -ef | wc -l
9947
竟然总共已经产生了9000多个进程。在这众多的进程中可以发现有很多的defunct进程。
#ps -ef |grep defunct | wc -l
9331
##ps -ef | grep defunct | more
root 159952 1 0 0:00 <defunct>
root 172052 1 0 0:00 <defunct>
root 225294 1 1 0:00 <defunct>
root 262236 1 0 0:00 <defunct>
root 290902 1 0 0:00 <defunct>
在网上随便查一下defunct,就可以知道,这是孤儿进程。已经找不到父进程,所以把init(PID 1)作为他的父进程。上面的结果中就是PPID=1。孤儿进程无法用kill -9 来清除,即使是root用户也不行,只能重启。这些孤儿进程一般情况下都是由于不当的fork ()/execve()造成的。
继续检查系统,不知道这么多的孤儿进程是哪个产生的。看一下主机系统的报错情况。
#errpt |more
IDENTIFIER TIMESTAMP T C RESOURCE_NAME DESCRIPTION
A63BEB70 1025140007 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED
A63BEB70 1025133007 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED
A63BEB70 1025130007 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED
A63BEB70 1025123007 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED
A63BEB70 1025120007 P S SYSPROC SOFTWARE PROGRAM ABNORMALLY TERMINATED
在这里,可以看到频繁的这个报错。基本每隔半个小时报错一次