PID USERNAME SIZE RSS STATE PRI NICE TIME CPU PROCESS/NLWP
22465 oracle 24G 24G cpu12 50 0 1:17:50 1.6% oracle/1
19638 oracle 24G 24G cpu21 0 0 1:20:04 1.6% oracle/1
28960 oracle 24G 24G cpu44 0 0 1:13:13 1.6% oracle/1
17805 oracle 24G 24G cpu56 50 0 1:22:37 1.6% oracle/1
17158 oracle 24G 24G cpu48 0 0 1:23:09 1.6% oracle/1
13437 oracle 24G 24G cpu34 40 0 1:27:07 1.6% oracle/1
13481 oracle 24G 24G cpu9 0 0 1:27:01 1.6% oracle/1
9462 oracle 24G 24G cpu24 0 0 1:30:00 1.6% oracle/1
8685 oracle 24G 24G sleep 100 - 0:06:01 0.1% oracle/1
20095 root 4048K 3704K cpu8 49 0 0:00:05 0.0% prstat/1
8681 oracle 24G 24G sleep 59 0 0:01:46 0.0% oracle/1
6689 root 75M 47M sleep 59 0 0:01:53 0.0% crsd.bin/45
8745 oracle 24G 24G sleep 100 - 0:01:06 0.0% oracle/1
8741 oracle 24G 24G sleep 100 - 0:01:04 0.0% oracle/1
8737 oracle 24G 24G sleep 100 - 0:01:07 0.0% oracle/1
NPROC USERNAME SWAP RSS MEMORY TIME CPU
172 oracle 25G 25G 20% 11:41:01 13%
89 root 322M 427M 0.3% 0:05:36 0.1%
1 smmsp 1384K 5768K 0.0% 0:00:00 0.0%
1 noaccess 122M 190M 0.1% 0:00:25 0.0%
6 daemon 6808K 8624K 0.0% 0:00:00 0.0%
Total: 269 processes, 720 lwps, load averages: 8.36, 8.88, 22.93
64个cpu,128g内存(操作系统目前使用16g)。
让人不解的是居然最近还老出现 cpu 占用 90%以上的现象
但是 查看cpu使用情况,感觉cpu分配还算平均,比如以上现象。
几个显示的前面的应该就是占用最大的了吧?(自己认为排在前面的就是占用cpu最多的了,没显示的应该都小于显示的)
总共才269个进程 ,就算每个 1.5% 64个cpu的占用也应该就 6%-8%,也不会 13%。
而且99%的时候,每个线程的占用率也就 1.6%,这样感觉就更离谱了!!
感觉配置这么高的机器,居然出现这样的现象,如果不能找到原因真是感觉羞愧!
请各位高手多提一些建议!
另外好像目前呈现经常报 java.net.socket: broken piped
这个错误。
命令 mpstat 10 60
可以看到
CPU minf mjf xcal intr ithr csw icsw migr smtx srw syscl usr sys wt idl
CPU CPU ID migr
Minf 轻微故障(minor faults) smtx 不知道怎么翻译
Mjf 重要故障(major faults) srw 不知道怎么翻译
Xcal 处理机间的调用 syscl 系统调用次数
Intr 中断数 usr 用户时间所占百分比
Ithr 线程中断数(不包括时钟中断) sys 系统时间所占百分比
csw 上下文切换次数 wt 等待时间所占百分比
icsw 强制的上下文切换次数 idle 空闲时间所占百分比
最后4项加起来,就是应该是100
你现在的oracle还是99%么?你CPU抽样的时候,最好和ORCALE一起跑,如果oracle的进程还是那么高,你看看idle是多少,如果一个idle是0了,说明这个cpu跑满了,那就是oracle没有多核支持,如果idle也很高,说明CPU都很空闲, oracle有多核支持
不过无论怎样,都说明了,100%不是你的极限
[quote]几个显示的前面的应该就是占用最大的了吧?(自己认为排在前面的就是占用cpu最多的了,没显示的应该都小于显示的)[/quote]
一般来说,如果想找出最耗费CPU资源的进程。大多数使用top进程。然后强制按照CPU的资源使用来排序(在top中按下P),就可以很快知道了。
[quote]
Total: 269 processes, 720 lwps, load averages: 8.36, 8.88, 22.93[/quote]
系统整体负载(load).3个数据分别表示1、5、10分钟的平均负载。一般来说,负载值应该不会超过1,除非系统很忙。如果持续高于5的话,那么需要仔细查看到底是哪个进程在影响整体系统。
注意观察top命令的第二行,需要注意最好的zombie(僵死进程)数值。如果不是0,好好看看到底哪些进程变成僵尸了。ps命令可以查到
最好把僵死进程kill掉吧
最后把僵死进程kill掉。
希望能帮助到你
安了。你linux下面的top, 94%只是一个cpu用了94%,又不是所有cpu加起来94%
load 22对你64个cpu来说,简直就是个p啊
如果你load 64 ,跟单核 load 1 一样。。。top 6400% 与 单核 top 100% 一样,就是这个意思
这个是orcale的多核支持问题了
我记得oracle有按照cup购买和按照user购买的,不知道您是怎么购买的
你top以后,按下1,看看是不是一个cpu 99%