Chinaunix
标题:
[Solaris] Kernel 态的CPU运行瞬时非常大
[打印本页]
作者:
chao_ping
时间:
2002-07-08 13:00
标题:
[Solaris] Kernel 态的CPU运行瞬时非常大
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占用?
谢谢.
作者:
lujin0248
时间:
2002-07-08 13:08
是不是oracle在做checkpoint,把内存中的数据和硬盘上的数据在做同步?
作者:
chao_ping
时间:
2002-07-08 13:11
可能性比较小.
因为平时数据库正常运行的时候观察不到这样的情况.
作者:
chao_ping
时间:
2002-07-08 13:17
可能和我得某个Cron有关系. 我把它disable掉试试看, 是否还存在这样的现象.
这个Top里面的Load究竟按照什么来取的值? 是平均每秒的运行的进程数目, 还是什么别的? 和Uptime里面显示的是同一个东西吧?(看了几次似乎是同一个东西)
这里的这个load的值是否比较准确反应系统的当前压力值?
比如12CPU的机器,如果Load达到12, 就表明系统已经完全满负荷运转了?
作者:
lujin0248
时间:
2002-07-08 15:28
不是,12个cpu,负载达到12并不是说系统负载很满了。具体的标准是多少我不能很明确。我曾经有一台4cpu的E4500机器负载达到13-15,双cpu的时候负载到达25-28,只能说明系统现在状态不正常
作者:
lujin0248
时间:
2002-07-08 15:29
我认为这时用vmstat检查,可以看出对sys和user的比例比较好
作者:
chao_ping
时间:
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占用.
作者:
lujin0248
时间:
2002-07-09 11:36
可不可以写出这部分的代码,分析一下也许可以看出来,也许有很多的系统调用(大量的关于cpu和mem的),所以sys比例就很高
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2