免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4112 | 回复: 7
打印 上一主题 下一主题

[Solaris] Kernel 态的CPU运行瞬时非常大 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2002-07-08 13:00 |只看该作者 |倒序浏览
Sun solaris 7, 12CPU的机器
在晚上很空闲的时候, 有一个时间点忽然CPU使用率很高, 持续时间很短(1-2分钟).
通过top -S -s 2 -d 3200 >>top`date +%Y%M%D`.log的的记录观察到下面的状态:
last_pid:_18504;__load_averages:__5.00,__1.45,__0.82____01:59:10
443_processes:_432_sleeping,_2_running,_1_stopped,_8_on_cpu
CPU_states:_24.4%_idle,__5.8%_user,,_69.4%_kernel,__[/COLOR] [/SIZE] ,__0.4%_iowait,__0.0%_swap
Memory:_12G_real,_840M_free,_5435M_swap_in_use,_8574M_swap_free

___PID_USERNAME_THR_PRI_NICE__SIZE___RES_STATE____TIME____CPU_COMMAND
_18516_oracle_____1___0____2___36M___16M_cpu/12___0:02__1.03%_oracle
_18526_oracle_____1___0____2___36M___16M_cpu/10___0:02__1.02%_oracle
_18536_oracle_____1___0____2___36M___15M_cpu/1____0:02__0.78%_oracle
_____3_root_______1__60__-20____0K____0K_sleep___66.8H__0.60%_fsflush
_18500_oracle_____1___0____2___36M___15M_cpu/4____0:01__0.49%_oracle

这个可能是什么原因?
从/var/adm/message里面对应的时间点看不到什么告警信息.
已经持续三天发现同样的情况.
一般什么样的情况会导致大量的SYS态运行的CPU占用?
谢谢.

论坛徽章:
0
2 [报告]
发表于 2002-07-08 13:08 |只看该作者
是不是oracle在做checkpoint,把内存中的数据和硬盘上的数据在做同步?

论坛徽章:
0
3 [报告]
发表于 2002-07-08 13:11 |只看该作者
可能性比较小.
因为平时数据库正常运行的时候观察不到这样的情况.

论坛徽章:
0
4 [报告]
发表于 2002-07-08 13:17 |只看该作者
可能和我得某个Cron有关系. 我把它disable掉试试看, 是否还存在这样的现象.
这个Top里面的Load究竟按照什么来取的值? 是平均每秒的运行的进程数目, 还是什么别的? 和Uptime里面显示的是同一个东西吧?(看了几次似乎是同一个东西)
这里的这个load的值是否比较准确反应系统的当前压力值?
比如12CPU的机器,如果Load达到12, 就表明系统已经完全满负荷运转了?

论坛徽章:
0
5 [报告]
发表于 2002-07-08 15:28 |只看该作者
不是,12个cpu,负载达到12并不是说系统负载很满了。具体的标准是多少我不能很明确。我曾经有一台4cpu的E4500机器负载达到13-15,双cpu的时候负载到达25-28,只能说明系统现在状态不正常

论坛徽章:
0
6 [报告]
发表于 2002-07-08 15:29 |只看该作者
我认为这时用vmstat检查,可以看出对sys和user的比例比较好

论坛徽章:
0
7 [报告]
发表于 2002-07-09 10:18 |只看该作者

分析初步结论

通过进一步观察和分析,
6号日志:
oracle@main-db1$cat top0706.log |grep load |sort +6nr |more
last pid:  8008;  load averages:  7.84,  2.89,  1.57    02:59:02
last pid:  8008;  load averages:  7.54,  2.88,  1.57    02:59:07
last pid:  8008;  load averages:  7.08,  2.86,  1.57    02:59:10
last pid:  8008;  load averages:  6.75,  2.84,  1.56    02:59:13
last pid:  8008;  load averages:  6.44,  2.81,  1.56    02:59:16
last pid:  8008;  load averages:  6.14,  2.79,  1.55    02:59:19
last pid:  8019;  load averages:  5.89,  2.77,  1.55    02:59:22
last pid:  8005;  load averages:  7.77,  2.76,  1.51    02:58:59
last pid:  8019;  load averages:  5.63,  2.75,  1.55    02:59:25
last pid:  8019;  load averages:  5.38,  2.73,  1.55    02:59:28
last pid:  8019;  load averages:  5.21,  2.72,  1.55    02:59:31

7号日志:
oracle@main-db1$cat top0707.log |grep load |sort +6nr |more
last pid: 28600;  load averages:  7.18,  2.29,  1.23    02:58:54
last pid: 28600;  load averages:  6.80,  2.28,  1.23    02:58:57
last pid: 28600;  load averages:  6.48,  2.26,  1.23    02:59:00
last pid: 28600;  load averages:  6.23,  2.25,  1.23    02:59:03
last pid: 28600;  load averages:  5.95,  2.23,  1.22    02:59:06
last pid: 28600;  load averages:  5.67,  2.21,  1.22    02:59:09
last pid: 28600;  load averages:  5.41,  2.20,  1.22    02:59:12
last pid: 28600;  load averages:  5.18,  2.18,  1.21    02:59:15
last pid: 28600;  load averages:  4.93,  2.16,  1.21    02:59:18
last pid: 28612;  load averages:  4.70,  2.14,  1.21    02:59:21
8号日志:
oracle@main-db1$cat top0708.log |grep load |sort +6nr |more
last pid: 19395;  load averages:  8.15,  3.26,  1.81    02:58:47
last pid: 19395;  load averages:  7.82,  3.24,  1.81    02:58:50
last pid: 19395;  load averages:  7.55,  3.23,  1.81    02:58:53
last pid: 19395;  load averages:  7.31,  3.22,  1.81    02:58:56
last pid: 19395;  load averages:  7.00,  3.20,  1.81    02:58:59
last pid: 19395;  load averages:  6.47,  3.18,  1.81    02:59:06
last pid: 19395;  load averages:  6.71,  3.18,  1.80    02:59:03
last pid: 19395;  load averages:  6.29,  3.17,  1.82    02:59:09

都是集中在某个特定时间点.
观察相应时间点详细的Top 信息,发现都有几个Oracle的进程在跑. 虽然这几个进程本身占用资源很少,但是正好这个时间点系统的SYS Load很高.
结合Oracle的日志(database event trigger, log the connect of oracle user,time,spid etc),发现都是perfstat用户的logon,怀疑可能和这个有关系.

8号下午disable了这个相应的Cron, 9号没有发现有大的Load出现的情况.
oracle@main-db1$cat top0709.log |grep load |sort +6nr |more
last pid:  9863;  load averages:  1.28,  1.13,  0.93    02:07:18
last pid:  9854;  load averages:  1.36,  1.12,  0.91    02:06:20
last pid:  9857;  load averages:  1.25,  1.12,  0.93    02:07:12
last pid:  9857;  load averages:  1.26,  1.12,  0.92    02:07:09
last pid:  9868;  load averages:  1.18,  1.12,  0.93    02:07:46
last pid:  9868;  load averages:  1.19,  1.12,  0.93    02:07:43
last pid:  9868;  load averages:  1.19,  1.12,  0.94    02:08:07
last pid:  9868;  load averages:  1.20,  1.12,  0.94    02:08:04


初步归结为记录数据库和主机性能的cron造成的影响.疑惑是这几个进程本身占用的资源很少, 即使占资源也不应该是SYS态的资源占用.

疑惑是为什么会有SYS态的CPU占用.

论坛徽章:
0
8 [报告]
发表于 2002-07-09 11:36 |只看该作者
可不可以写出这部分的代码,分析一下也许可以看出来,也许有很多的系统调用(大量的关于cpu和mem的),所以sys比例就很高
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP