AIX 系统 CPU 占用率 100% 的原因分析

 2017年2月8日 07:26 听全文

昨天,我们与大家分享了《故障案例分析:AIX网络性能问》(点击可回顾),这是AIX系统日常运维中常见的一个案例。而在AIX系统日常运维中,我们经常会遇到各种各样的故障:系统又出问题了,怎么办?机器宕机了,该如何分析dump?故障处理完了,有没有经验可以给大家分享?

问题虽多,但万变不离其宗,这些故障基本可以分为异常宕机、性能问题、参数设置、系统BUG等类别。在这个套路的时代,每一类故障都有固定的分析套路。

本案例作者——崔增顺,总结了近几年来处理的有代表性的经典故障案例,涵盖了内存、网络、CPU、LVM、dump分析等方向的故障分析思路,分享了一系列故障案例分析及解决建议。包括:

案例一:AIX网络性能问题

案例二:AIX操作系统CPU占用率高

案例三:AIX操作系统宕机(内存参数kernel_heap_psize相关)

案例四:AIX操作系统宕机(内存参数numperm_global相关)

案例五:AIX操作系统宕机(netstat BUG导致)

案例六:P780上保留内存(不可分配给分区使用)的占用率较高

案例七:oracle数据库重启(内存参数numperm_global相关)

案例八:varyonvg报错(LVM相关)

案例九:AIX操作系统夯住

作者的分享意在抛砖引玉,希望大家能多多分享,并在2月17日的在线活动“AIX系统日常运维中故障分析及处理在线技术交流”中,一起讨论在日常运维中遇到的故障以及解决方案。欢迎参与。

时间:2月17日9:00-18:00

参与方式:点击“阅读原文”在线报名

(参加活动还有奖励哦~)

今天的分享——

故障案例分析:AIX操作系统CPU占用率高

故障描述

CPU 100%,需要分析原因。

故障分析

检查系统的相关数据,发现系统中造成CPU高的为大量的topasrec进程。

root 24117384 1 0 May 14 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=11:27:14,May14,2013 -o /etc/perf/
root 24314016 1 0 May 06 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=01:52:54,May06,2013 -o /etc/perf/
root 24444950 1 0 May 10 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=07:29:35,May10,2013 -o /etc/perf/
root 24510670 1 0 May 09 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=03:00:46,May09,2013 -o /etc/perf/
root 24707102 1 0 May 07 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=13:11:10,May07,2013 -o /etc/perf/
root 24772628 1 0 May 07 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=21:46:45,May07,2013 -o /etc/perf/
root 24838176 1 0 May 12 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=10:27:28,May12,2013 -o /etc/perf/
root 24903888 1 0 May 06 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=06:47:43,May06,2013 -o /etc/perf/
root 24969418 1 0 May 06 - 0:00 /usr/bin/topasrec -L -O type=azizo -ystart_time=19:29:37,May06,2013 -o /etc/perf/

查看进程的stack信息:

0xd01407b0 malloc_y(0x80, 0x0, 0xf23800c8, 0xf24d2920, 0x0, 0x0, 0x0, 0x2ff191c8) + 0x590
0xd012a908 malloc_common@AF103_86(??) + 0x28
0xd08a5e1c uprv_malloc@AF10_7(??) + 0x5c
0xd08cd2e4 ures_openDirect(??, ??, ??) + 0x44
0xd06afe48 icu::openOlsonResource(consticu::UnicodeString&,UResourceBundle&,UErrorCode&)(??, ??, ??) + 0x28
0xd06afa98 icu::TimeZone::createSystemTimeZone(consticu::UnicodeString&)(??) + 0x58
0xd06af954 icu::TimeZone::createTimeZone(consticu::UnicodeString&)(??) + 0x14
0xd07eb764 _createTimeZone(constwchar_t*,int,UErrorCode*)(??, ??, ??) + 0x164
0xd07ebb48 ucal_open(??, ??, ??, ??, ??) + 0x108
0xd01bfe4c localtime_tz_ost_r(??, ??) + 0xac
0xd01c03d4 localtime_tz_r(??, ??, ??) + 0x394
0xd01c194c ctime(??) + 0xc
0x100077e4 write_to_log(??) + 0x84
0x1000bf9c must_exit(??) + 0x3c
0xd01407b0 malloc_y(0x80, 0x0, 0xf23800c8, 0xf24d2920, 0x0, 0x0, 0x0, 0x2ff1aa48) + 0x590
0xd012a908 malloc_common@AF103_86(??) + 0x28
0xd08a5e1c uprv_malloc@AF10_7(??) + 0x5c
0xd08cd2e4 ures_openDirect(??, ??, ??) + 0x44
0xd06afe48 icu::openOlsonResource(consticu::UnicodeString&,UResourceBundle&,UErrorCode&)(??, ??, ??) + 0x28
0xd06afa98 icu::TimeZone::createSystemTimeZone(consticu::UnicodeString&)(??) + 0x58
0xd06af954 icu::TimeZone::createTimeZone(consticu::UnicodeString&)(??) + 0x14
0xd07eb764 _createTimeZone(constwchar_t*,int,UErrorCode*)(??, ??, ??) + 0x164
0xd07ebb48 ucal_open(??, ??, ??, ??, ??) + 0x108
0xd01bfe4c localtime_tz_ost_r(??, ??) + 0xac
0xd01c03d4 localtime_tz_r(??, ??, ??) + 0x394
0xd01c194c ctime(??) + 0xc
0x100077e4 write_to_log(??) + 0x84
0x1000bf9c must_exit(??) + 0x3c
0x10014b88 get_stats(??) + 0x88
0xd01407b0 malloc_y(0x80, 0x0, 0xf23800c8, 0xf24d2920, 0x0, 0x0, 0x0, 0x2ff1c718) + 0x590
0xd012a908 malloc_common@AF103_86(??) + 0x28
0xd08a5e1c uprv_malloc@AF10_7(??) + 0x5c
0xd08cd2e4 ures_openDirect(??, ??, ??) + 0x44
0xd06afe48 icu::openOlsonResource(consticu::UnicodeString&,UResourceBundle&,UErrorCode&)(??, ??, ??) + 0x28
0xd06afa98 icu::TimeZone::createSystemTimeZone(consticu::UnicodeString&)(??) + 0x58
0xd06af954 icu::TimeZone::createTimeZone(consticu::UnicodeString&)(??) + 0x14
0xd07eb764 _createTimeZone(constwchar_t*,int,UErrorCode*)(??, ??, ??) + 0x164
0xd07ebb48 ucal_open(??, ??, ??, ??, ??) + 0x108
0xd01bfe4c localtime_tz_ost_r(??, ??) + 0xac
0xd01c03d4 localtime_tz_r(??, ??, ??) + 0x394
0xd01c194c ctime(??) + 0xc
0x100077e4 write_to_log(??) + 0x84
0x1000bf9c must_exit(??) + 0x3c

后续措施和建议

经分析这个为AIX bug导致:

IV24599: TOPASREC AZIZO PROCESS HANGS BECAUSE OF SIGALRM IN-TERRUPT APPLIES TO AIX 6100-06

http://www-01.ibm.com/support/docview.wss?uid=isg1IV24599

当前AIX版本为6100-06-06,此补丁需要系统升级到6100-06-11。

针对此问题可惜采取两种措施来解决:

1、升级操作系统版本至6100-06-11

2、禁用xmdaily避免自动启动topasrec

# vi /etc/inittab

修改xmdaily:2:once为xmdaily:2:off

# telinit q

使新的inittab文件生效

# vi /etc/inetd.conf

注释掉xmquery对应的行

# refresh –s inetd

使新的inetd.conf文件生效

1 次浏览 更新于 2026-11-04

同组文章性能与故障案例

查看本组全部 10 篇

没有找到想要的答案?

上传日志让 AI 帮你诊断,或者在控制台里直接向 AI 提问。